@##################################################################################$$$$$$&%%&&&=$$$&&$$$$&&%%%*;=%$$&$$$&&==$$$$$$$$$&$$$&%=%=%#$#$#$#$$$$$###$#
@#################################################################################$$$$$$$&$$$$$&&$$$&&$$%=%%%?:>=&$&$$&%==%&$$$$$$$$&&&$$?===>$$$$$$$$$$$$$$$$$$
###############################################################################$###$$$##$$$$$$$$&$$$$&%&?=%%?!)?=$$&$$$&&&&$$$$$$&&&&&%%===??&$$$$$$$$$$$$$$$$$$
###########################################################################$###$#######$$$$$$$$$$$$$&&&=???+*;>=%$$$$$&&&&&&&$$$$&&&&&%?)>>%&$$$$$$$$$$$$$$$$$$$
############################################################################$$############$####$&$$$$&%=?++)!)?=&$$$&&&&&&&&&&&&&&&&&%%)!+%&$$$$$$$$$$$$$$$$$$$$
##########################################################################$#$$################$$&$$$$$&=>+!;!**)+))**!!!!;;;!!!**))+>>>;)%&&&&$$$$$$$$$$$$$$$$$$
##########################################################################$##################$$$&&$$$$&&=!-^,,..''''''''''''````````''''.^~:!)>=&&&&&&$$$$$$$$$$
#########################################################################$#####################$$&&&$&&%%?!^,..''``````````````````````````````'.~:*>=%&&&&&&&$$
##################################################################################$$%$$$$$#$###$$$$&&&&&&==)~,..'````````````````````````````````````'.~!+=%&&&&
################################################################################&%)>)=>&##$$$$$$$$$$&&&&&=%=;~'.''````````````````````````````````````````',-*>%
###############################################################################$=>?=+!!=$#$$$$$$$$$$$$&$&%&=+;^''''````````````````````````````````````````````.
###############################################################################%=#&+$&$##$$$$$$$$$$$$$$$&%&&?*;,'''`````````````````````````````````````````````
##############################################################################=%&#&+>$$$$$$$$$$$$$$$$$$&&%&&=+!~'''`````````````````````````````````````````````
#############################################################################&%=$#%**=$$$$$$$$$$$$$$$&&$&%%&=>+-.'''````````````````````````````````````````````
#############################################################################>#?#&>%$##$$$$$$$$$$$$$$&&&&&%%%>>;,''`````````````````````````````````````````````
############################################################################$>#?>??*)?%&$!$$$&=$&$$$&&&&&&&%?>>*,.'`````````````````````````````````````````````
########################################$##$$&%?>)))?$######################$>####+;=)))+:-%$!+=!$$>&&&&&%%%%>>),.'`````````````````````````````````````````````
####################################$$&%?>)*!:--~~^~-*&#$####################?=$%+*>*!;+!~!?>;)=+$&**%&&&%%%%=+),.'```````````````````````````````````````````''
##############################$&%=>+*!;:-~~^^,,,,,,.,~)$$#####################&?=&&$&$$=??*&>!-;+>=;&&&&&%%%==?*.''`````````````````````````````````'''''..,,^^~
####################$##$$&%?>)*;::-~~^^,,,,,,,,,,,,,,,:=$###################$#$$###$$$$$$$$$&!*$%=;;%?&&&%%==?=*.'`````````````````````'`''''''...,,^~-:;!*)++>>
#################$&%=>+)!;::-~~^^^^,,,,,,,,,,,,,,,,,,,~+####################$$#$#$$$$$$$$$$$$%%$??$?!$&&%%%==?>?.'```````````''''''....,,^^~-:;!*))+>>>>>>>+++))
###########$&%=>)!;:--~~^^^^^^^^^^^^^^,,,,,,,,,,,,,,,,^=####################$##$$$$$$$$$$$$$$$&&&&&&=)&&%%%==?>>~''''''''...,,,^~~-:;!*)+++>>>>>>+++))))*****!!!
####$$$&=>+*;:-~^^,,,,,,,^^^^^^^^^^^^^^,,,,,,,,,,,,,,,~$###################$##$$$$$$$$$$&&&&&&&&&&&&&&&&%%%==??+!.,,,^~~-:;!*))++>>>>>>++++)))****!!!!!;;;;;;;;:
$&%?+)!:--~^^,,,......,,,,^^^^^^^^^^^^^^^,,,,,,,,,,,,,;$###################$$$$$$$$&&&&&&%%%%%=%%&&&%&&%%%%==??>);!*)++>>>>>++++))))****!!!!;;;;;;;:::::::::::::
*!:--~^,,,,,,,,.,,,,,,,,,,,^^^^^^^^^^^^^^,,,,,,,,,,,,^*#################$$$$$$$$$&&&&&&%%%%%%=====?=%&%%%%===??>))++++))))***!!!!!;;;;;:::::::::::::::::::::::::
~^^,,,.....,,,^:)>>>>+)*!;:-~~^^^^^^^^^^^,,,,,,,,,,,,~+###############$$$$$$$$$&&&&&&&&&&&&&&&%%==???>=%%====??>+!!!!!!;;;;;;:::::::::::::::::::::::::::::::::::
,,,,........,->$$$#######$$%=?+*;-~^^^,,,,,,,,,,,,,,,~?#############$#$$$$$$$$$$$$$$$$$$$$$$$$$$&&&%=?>>?%%????>>;:::::::::::::::::::::::::--:::::::::-:::::::::
...........,;%$#$$$###########$$$&=>*;-~^,,,,,,,,,,,,~=#############$$$$$$$$$$$$#################$$$$&%=>+>%=>>>>!-:::::::::::--:-------------------:::-::::::::
..........,!&$###$$##########$$$$$$$$$&?+!:~^,,..,,,,^=############$$$$$$$$####$$$$$$$$$$$$$#########$$$&=>+?%>>>*------------------------------::::::::;;;;;;::
.........,!$$####$$#######$$$$$$$$$$$$$$$$&=>*:~^,.,,^%###########$$$$$####$$$$$$$$$$$$$$$$$$$$$########$$&=>+%>>)-----------------::::::::;;;;;;!!!!!******!!;:
........,;&$#####$$##$$$$$$$$$$$$$$$$$$$$$$$$$&=>!-^,^&#########$$$$####$$$$$$$$$$$$$$$$$$$$$$$$$##########$&=+=>+----:::::::;;;;;;;!!!!!*****)))))))++++++)*!!;
........-%$######$$#$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&%?*;$########$$$####$$$$$$$$$&&&&&&&&&&$$$$$$$$$##########$$%>>+:-:;;!!!!!****))))))))))++++++++++++++++))**!;
.......^>$#######$$#$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&%%#######$$$###$$$$$$$$$&&&&&&%%%%%%&&&&&$$$$$$###########$&?+;:;*))))))+++++++++++++))))))))))))))))******;
.......!$########$&#$$$&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%&################$$$$&&&%%%%========%%%&&&&$$$#############$%*;!))+)))))))))))))))))*****************!**)*;
,.....~%#########$&$$&&&&&&&%%%%%%%%%%%==============&########$$#########$$&%%===???????====%%&$$################$%)!****************************************)*;
,,...,+$#########$&$$&&&&%%%%%%%%===========???????==$#######$$#############$&&%=???>>????==%&$#######$$##########$%)!!*********************)))))))++++++))*))*;
,,,.,-&$########$$$$&&&%%%%%%==========?????????????=$######$$$##$$&&$$$######$&%=?>>>>>??=%$$$###$&&&&&&$#######$$$%!!*****))))))))+++++++>>>>>>>???????>+)))*;
~~^,^+$#########$&$$&%%%%%%========????????????????==&######$&&&&&%%%%%%%&&$$$$$&%?>>>>>>?=%&$&&%%%%%%%%&&$######%&$$%;;*+>>>>>>>>?????========%%%%%%%%%%=?>+)!;
*;:-!&##########$&$&&%%%%========???????????>??>>>===$######&&&&&&&&&&&&&&&&%&&&%%?>++++>>===%%%&&$$$&&&%&&$#####&+&$$);;!>??=%%%%&&&&&&&&&&$$$$$$$$$$&&&%=>+*!;
??>+%$##########$&$&%%%==========?????????????>>>===$######$&&&&&&&$$$$$&&%&&&%%%=?>+)))+>?==%&$$$$$$$$&&&&$###$&$?!%$);;;!+=%%&&$$$$$$$$$$$$&&&&&&&$&%==?>+)*!;
>>>?$###########$%$%%%%===========?????????????>===$#######$%%%&&$$$$######$%%&&%%=>)*!)+>?=%&$$#$$###$$&&&$###$=%%+:;-~:**!)=%%&=%%%===???>>>>+++>?===>>++)*!!:
))+%############&%$%%%=============???????????>?%%$########&%%%%&$###$$$$&%%%&==%%=>)!!*+>??=$%$$$%$=&##$&%&###$=%?=*-~-~-!*;!>?>>++))))****!!!!!!*+??>+))**!!;:
**+&############&%&%=================??????????%&&#########&%==%%&$$$&%&&&&)+=&??%=?)!;*)++>%%=%&&&&?%&&=>?%$##$%=?>=*-~-~-;!!;)+*!!!!!;;;;:::::--;*+>>)***!!!;:
**>$###########$&%&%=====%%%%===========??????=&&##########&%====%&&&&&%%=??>>>?>==?+*!**))+>========??+)*+=$##$$=%+??*-~---;!;:!!;;;;;;::----~~--:!+>+*!!!!!;;:
*)%$###########$&%&%===%%%%%%%%%%========????=%&$##########&%=?????=%%%==???>>+>?==>)*!!***)+>????>>+)!;;;!>&###$%%=)??*:----:*;;;;;;!!!!;:::-::::;)>>+*!!!!;;;:
)+$############$%%%===%%%%%%%%%%%%%%%========%&&$##########&==?>>>+>>>>>>>++)*)+???>)!!;;!!!!***))**;:---:;)&#$#$&=%++?>):--:-;!;;!!*)))))*!!!!**)+>?>)!!!;;;;;:
+=$##########$$&%&%===%%%%%%%%%%%%%%%%%======&&$$$$$$$#####&%=?>++)))*****!!!!)+???>)!;;;:;::::::::--~^^~-:*%###$$%%%+>?+);-::-!!;;*)+>>>>>>>>>>>>?==>)!!;;;;;;:
?&###########$$&=&%===%%%%%%%%%%%%%%%%%%%%%=%&&$$$$$$$#####$%=?>+)**!!!;;;;;;!)+>??>)!;::---~~~~~~~^^,,,^~-!%###$$$%&?+>?++!:::-!!;!)+>>++++>>>+++>??>)!;;;;;;;:
%$###########$$&=&===%%%%%%%%&&&%%&%%%%%%%%%%&$$$$$$$$#####$%=?>+)*!!;;;;;;;!!)+>??>)!;::-~~^^^^^,,,...,^~-!&#####$%%&>+??++*;;:-!*!)))**!!**)*!;!*+?>)!;;;;;;;:
&$##########$$$%=&===%%%%&&&&&&&&&&&&&&%%%%%&&$$$$$$$####$&$%=?>+)**!;;;;:;;;!)+?=?>)!;:--~^,,,.,......,^~:!$######$%&%>+=?++*!*;:!*))*;:::::::---;*>>*!;;;;;;;:
&$###########$$%=%==%%%%&&&&&&&&&&&&&&&&&&%&&&&$$$$$$####?;?&%=?>+)*!;;;:::;;!)>==?+*;:-~~~^,,.......,,^~-:)$####$##$&%=>>==>+***!!!*)*:-------~~~:*>>*;;;::;;;:
$#########$$$$$%%%==%%%&&&&&&&&&&&&&&&&&&&&&&$&$$$$$#####=>=&%=?>+)**!;;;::;;!)?==>*;~,.,^^^,,,....,,^^~~-:>>&###$###$&%=??=?>+***!*))*;----------;*>+*!;:--:;;:
$########$#$#$&=%%%%%%&&&&&&&&&&&$$&&&&&&&&&&&&$$$$$######$$$%%=?>+)*!!;;;;;;!+?=??+;-~^^~^~^,,,.,,^^^~~--;=?&########$&%==?%?>)*)**)++!::::;;;;;!)+?>*!:~~~-;;:
$$######$$#$$$&=&%%%%%&&&&&&&$$$$$$$$$$$&&&&&&&$$$$$$########%%=??>+)*!;;;;;;*+=??=?)!:-::^^^,,,,,,^^~~--:*&$##########$&%==?=?>))*)+>>)!;;;!!*))>?==>*!:~^~-;;:
$$#####$$$$$$$%=&%%%%&&&&&&&$$$$$$$$$$$$$$$&&&&$$$$$$########&%%=?>+)**!;;;;;*>=?&#&>+*)=?:^,,,,,,^^^~~-:;>#############$$=%%?=?>))+>??+**!!))+>?=%%=>*!;-~-:!!;
$##$#$#$$$$$#$%=&%%%&&&&&&$$$$$$$$$$$$$$$$$$&&&&$$$$$########&%%==?>+)*!!;;;;!)>=%==?>;--;~,,...,,^^^~--:!%##############$$%%%???>)+?==>)***)++>>?=%=>*!;;:;*)*;
#####$$#$$$$$$%%%%%&&&&&&$$$$$$$$$$$$$$$$$$$$&&&$&$$#$#######$%%==?>>+)*!!;;;!!*)+>)**-^~^,.....,,^^~--:;*$###$$#$######$##=;~~!!-~;?%=>)***))+++>===>)****)+>+*
#######$$$$$$$%%%%&&&&&&$$$$$$$$$$$$$$$$$$$$$&&$$&$$$$#######$%%===?>+)**!!;;;;!!!!:^~~^,,......,^~--:;;;!+=$$$$$$$$##?;-:>;-:!*-^,..*=?+***))))+>?=%?>++++>?=?+
#####$$#$$$$$&=&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&$&&$$$$#######%%===??>+)**!;;;;;!!!:~-:~^,.....,^~:::-~^,,,,^-;)=%$$&*--;):-:)+;~,...',!++++++++>>=%%=?????=%%=?
####$##$$$$$$&=&&&&&&$$$$$$$$$$$##$#####$$#$$&&&$$&&&$$$######&%===??>>+)**!!!!*)***!:---~^,..,~;:~,...........,:-!):-:;!-~:*):~,......'.-)++>>??==%%%=====%%%=?
###$$$$$$$$$$&%&&&&&$$$$$$$$$$$#############$&&&&$&&&&$$$$####$%===???>>+)****++++++)**!!;;:~^^~-,...,..,,^,...~~:-~-*=>!~-!*:^,....,,...''~*>?===%%%%=====%%%%?
###$$$##$$$$$&&&&&$$$$$$$$$$$$$#############$&&&&&&&&&&&$$#####&%===???>>++)+>???>>>?>>>>>+++-,^..,,--~~~:;-~~-;-^^~!*!*;!**:^,..,,^~^,,..'''~+==%%%%%====%%%%=?
###$$$$$$$$$$%$$$$$$$$$$$$$$$$##############$&&&&&$&&&&&&$$####$%====??>>>>>=%%==%%%&$$$&%?+=>!---;+???=%%=>+!:^,^-!;~^~-)):~,..,--:::;-,...'''~>%%%%=====%%%%=?
####$$$$$$$$&&$$$$$$$$$$$###################$&&&&&&&%&&%&&$$$###&%===???>>>>>=?>>?==%$#$&%=%?>+)?=%%&$#####&*-^,^;*:~^^-*+!-,..,:*)+>>*:~^,...'''-?%%=====%%%%=?
##########$$&$$$$$$$$$$$####################$$&%&&&$%%%%&&$$$####&%===??>>>>>?>+)!!*)>=&$&$%%=?+*+=&$####$?;~^,~*+;~^^-)+*-^,.,->==%=?>*;-^,..'''''!======%%&%=?
###########$&$$$$$$$$$######################$$&%&$%$%%%%&&$$$$####&%===??>>>?==?+*!:-;*>&$$&%%%?>+*=#####?)-^,~*?+!~^-*?>*-^,,-?%%%%%==>+!:~^,.''''',*?===%%%%=?
###########$$#$$$############################$$%&$%&&%%&&&$$$$#####&%===??>>>?%%=>+**)+>%$$$&&%%?>+)+%###>!~,^;>?+!-~;>=>);~,:?==%%%%%%=?+*:-^,..''''',;>==%%%=?
###########&#################################$$%&$&&&%%&&$$$$$######&%===?>>>>?=%%=>>>?=%&&&$$&&==?>+)+&$+;^,~*=?+;~~;?=>);~,:???===%%===?+*;-~,,.''''''',:)=%=>
##########$$#################################$$&&$&%&&&&&$$$$$######$&%==??>>+++>=%%%%%%%%=>?&$&%%==?>+)>)-^,-+%?):~~;?%>+;~^-+>>???==%===?>);-~^,..''''''''.^;*
##########$##################################$#&&$$%&&&$$$$$#$######$&&%%=??>+))***))+>>>>+)*)=&&&%%=??++);^^:%#?):^^:%%?+!-^-*))+>>??=====?>)!:~^,..'''''''''''
##########$################################$$&&&&$$%&$&$$$$$#$######$&&&%%=?>>))*!!!!!*))))***+&$$&%%==?>>+*-;$#?):^^:$#%>):^~;!!!*)+>>?====?>)!:-~^,.''''......
&########$#########################$$&&$%==??=%&&$$&&$&$$$$$#$#####$$&&&&%%=??>+**!!!**))))*)>&##$&&&%%==??+*!=$?):^^;##$?>*:^::::;;!*)+>?===?>)!:-~^,..........
>?=%%%%%%$#$$$################$$$$&&%%%&=??>??%&&$$&&$$$$$$##$#####$&&%%%%%%==?>+)****))))))?$$####$$&&%===?>)!*>+:^^*&$#&=?+-~----::;!*)+>?==?>)!:-~^,,,,,,,...
&%%%====???&&&$$$$##############$$$$&%%%=?>>?=%&&$$&&$$$$$$$#$#####$&&%%%%%%%==??>+)))++++>=&$$#####$$$&&%%=?>+)*!:~~;*)))?)!!--------::;*)>????>)*;:-~^^^^^^,,,
######$$%!.?$##############$$$&&&%%%&$$&%%====%&&$$&&$$$#$$$$$####$&&%%====%%%%==???>>>??=%%&$$#######$$&&&%===?>)*;:-;;;!*?!:-~~~~~~~---:!*+>???>+*!;:::--~~^^,
#####$&&%!')%&&$$$$$$$$&&&&&&%%%=====%&&&%%===%&$$$&&$$$#$$#$&####$&%%===?========????====%%&&$########%&$$&&%%=??):^^-:::;)>:--~~~~~~~~--:!*+>???>>+)**!;;:--~~
##$&%%%%%>^+$$$$&&&$$$$$$$$$$$$$$&&&%%%%%%%==%&&$$$&&$$$#$$$&$$$#$&%%==???????????>>>????==%&&$########=>?$$$&&%%*^--^^:::;;::::----~~----::!*)>>????>+)**!!;::-
%==%$###$$=&$$&$&&$$###$#$$$$$$$$&&&&&&&&&%%%&&$$$$&$$$$#$#$%&$#$&%%%=??>>>>>>>>>>>>>>>???=%&&$########%>!;=$$$%>;;!^,^,;**)!!;;;::::::::::;;!))+>>>>>>+))**!!;;
??=$$##$$&&&&&&$$$$$$$$$$$$$$$&&&&&&&%%%%%%%&&$$$$$&$$$#$$$%%&$$&%%===??>>++++++++++++>>??=%%&$#######$%?)--%$$=>)*:^~^,;>>>+))***!!!;;;;;;;!*)+++>>>>>>>>+))**!
%%&$$####$$$$$$$$$$$$$&&&&&&%%&&&&&&&&&&%%%&&$$$$#&&$$$#$$&=%%$&%%==???>>++))))))))+++>>>?==%&$$######$=**:-%$$&+)+);!~:>$&%%=?>>+++))*****))+>??==???????>>>++)
$$$###$$$$$$$$$$&&&%%&&&&&&&&&&&%%%%%%%%%%%%&$$$$$&&$$$#$$=%%%&%%===?>>>+))))*)))))))++>>??=%&$$#####$$?!:;-&$$$=?=?*:-^%##$$%%%%===???>>>>>+>>???==%%===?????>>
#$$$$$$$$&&&%%%&&&&&&&&&&&&%%%%%%%%%%%%%%%%&$$$$$$&$$$#$$%%%=%%=????>>+++))********)))++>>?=%&&$#####$$?*-;;$$$$$&%=>;;?##$$$&%=+>>>++>>>+**!!!!!!!!!*)>=%%====?
$$$&&%%%%&&&$$$&&&&&&&%%%%%%%%%%%%%%%%%%%%&$#$$$$$&$$$#$&%%==%=????>++++))**!!!****)))+++>?==%&$####$$$=*:)=&$&$$&&&&&$$$#$$&&%=?+>>)!**+>>>>+++++)))****)>=%%%%
&%%%&$$$$&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%&&&$$$$$$&$$##$&&%===%??>>>++))+))*!!!!!!****))++>>?=%&$$###$$$%?=&$&&&$&&$&$$$#$$$$&&&%=>+>)*)**>???==???????>>>>+++?%&
&$$$$&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%&&&&&$$###$$$$$##$&&&%=====>>>>+)*)))**!;;;;!!!!**))+>>?==&$$###$$$&&&&&&&&&&&&&$$$##$$$&%%&==>+))+)**!!!!**)+>?========????
$$&&&&&%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&$$$######$$$$###$&&%==?=?=?>>+)*!*))*!;;;;;;;!!!**)++>?==%&$##$$$$&%&&&&&&$&&%&$$$###$$$%%%==?>))+++>++))))***!!*)>=%%%%%%%
&&&&%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&$$$#######$$$$##$$$&&%==??>>?>+)*!!****!;::::;;;!!**))++>?=%&$##$#$&&%&&&&&&&&&%&$$$###$$$&%%%=??>))+>>?>>>>>>>+++))****)?%%%
&%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&$$$$$$$###$$$###$$$$&%%==??>>>>>*!;!***!;;::::::;;!!**))+>?=%&$#$$$$&%%&&&&%&&&%%&$$$$#$#$$&&%%%=??+++>??????????>>>>>+)))*!*+
%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%&$$$$$$$##$$$$$&&%%==??++++++*!!***!;::--::::;;!**))+>?=%&$$$$$$&%%&&&&&&&&%&&$&$$$#$$$$&&%%?>=>+>>????======???????>++))*
%%%%%%%%%%%%%%%%%%%%%%%&&&&%%%%%%%%%%&&$$$$$$$$$$$$$&&&%%=???++++)*)+++)*!;:---:::;;;!**))+>?=%%&$&$$$&%%&&&&%&&&%&$&&&$$$$$$$&&&=?>??>??????==%========%=>>>>>+
%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%&&&&&&&&$$$$$$&&%%==???>>>+++++++)*!::--:::;;;!!***)+>??=%&&&&&&%%%&&&&&&&&&%&&&&$$$$$$$$&&=?++>>??==??==%%%=====%&=??????
%==%%=%%%%%%%%%%%%%%%%%&&&%%%%%%%%%%%%%%%%%%%&$$$$$$&&%%==?????>>++))**!;;;;:-:::;;;!!!*))+>?=%%%&&&%&%%%&&&&&%&%&%&&$%$$$$$&&&&&%=?++>?===??=%%%%====%&%====???
%===%====%%%%%%%%%&%=%%%%%%%%%%%%%%%%%%%%%%%&&&$$$$&&&%%==???>+))*!!!;;:----;;!);;;;;!!*))+>=%%%%%&&%&%%%%$&&&%%&&&%&&%$$$&&&&&&&%=?>)+??==??=%&%%===%&&========
=====%%%%%%%%%&&&&&%=%%%%%%%%%%%%%%%%%%%=%%%&&&$$$$&&&%%%=???+)!;;;;::::-~~~-;>+:::;;!**)+>=%%%%=%%&%%%&%%&&%&&&&&&%&&%$$$&&&&&&%%%=?>)>===??=%&&%===%&&========
=====%%%%%%%&&&&&&&%=%%%%%=======%%%%%%%%%%%%%&$$$&&&&%%%==??+!;:::::---~~~~-*>**::;;!*)+>=%%%%%==%%%%&$%%&&&&$&&&&&%&%$&$&&&&%%%==%=?++>==??=%&&%==%&&%==%%%%%%
======%%%%%&&&&$&&&%?===============%%%%%%%%%%&$$&&&&&%%%==???!;:-------~~~~-*)~:-:;;!*)>=%%%%%=====%%$#$%&&&%$$&&&&%&%&$$&%%&%%====%=>++>???=%&&%==%&&%%%%%%%%%
=====%%%%%&&&$$$&&&%?==================%%%%%%%&$$&&&&&&%%=====);::------~~~--:+*~::;;!*+?%%%%%===%%&$$$##$%&$$&$$&$&&%%&&&&%%%%==?=?=%?>+>>??=%&&%==&&%%%%%%%%%%
===%=%%%%&&$$$$&%%&=?=================%%==%%%%&$$&&&&&&%%%$$$&>*:::------~----::-::;!*+?%%%%%%%%&&&$$$$$##$%&$&&$&$$&&%%&&&%%%%%==?=?%%?>>>>?=%&&%=%$&%%%%%%%%%?
%=%%%%%%&&$$$$$&%%&=??====================%%%%$$$&&&&&%%&###&$&=+;::------------:::;!*>%%%====%%%&&&&&$$$##$%&$&&$&$$&%%%&&%==%%===?=?=??+>>>?%%%==&$%%%%%%%%%%+
%%%%%%%&&&$$#$&%%%&=??=====================%%%$&&&&&&%%$$###$$$&%?+!:------------::;!+%%=======%%&&&&&&$$####&&$$&$$&$&%=%%%===%%===?=?=??>>??=%%==$&%%%%%%%%%?)
=%%%%%%&&$$$#$&%%%&%??=====================%%&$&&&&&%&$$$$$$$$&&$&%?>*:-----------:;*=%??????==%%%%%&&&$######$&$$&$$&$&%==%====%%=?==?==??>??=%%=%&%%%%%%%&&%+)
%%%%%%&&&$$$#$&%%%&&??====================%%%&$&&&%%&&&&&&&$$$$&&&&%=??!----------:;>%???????==%%%%%%%&$########&&&&&%%&&%???=??====?==?=%????====&&%%&&&&&&&=))
%%%%%%&&$$$##&%%=%&&=??======?=============%%&&&%%%&&&&&&&&&&&$$$&&&&==%?;--------:!==???????==%%%%%%&$$$########$$&&&%%%&&?>>>???======?====?=%==&%%%&&&&&&%>))
%%%%%&&&$$##$&%%==%&%??=======?=============%&&%%%%%%%%%%%%%%&&&&$$$&%==%%)-------:*%???????==%%%%%%%$$$###$$#######$&&%%=%%=>+>>+>?======%%====%%%%&&&&&&&&=+++
%%%%%&&$$$##$&%%==%&&??======???=============%=====%%%%%%%%%%%%%%&&$$&&&%%%+------:+=???????==%%%=%%&$$###$&&$########$&&&=?==?+>?>>>?=%===%%%===%%&%&&&&&&%?>++
%%%%%&&$$$##$&%%===&&=?=======??=====================%%%%%%%%%%%%%%%&&&&&&&%>:----:?=??=?>?==%%%==%&$$###$&&%&$##$#####$$&&=?>?=>>>???==%%==%%%%%%&&&&&&&&&=?>>>
%%%%&&&$$###&&%%===%&&??======???=========================%%%%%%%=%%%%&&&&&&&?:---;=??=?>>?=%====%%&$###$$%%%%&###$$$###$$&&=>>>===?====%%%%%&&%&&&&&&&&$&%=???>
%%%%&&&$$###&&%%===%&$=?=======??============================%%%%%====%%%%%%&&?:--!%??==>>?%%====%&$$##$$&%%==&$##$$$$###$$&&=>>>?%%%%%%%%%%%%&&&&&&&$$$$&%==???
%%%%&&&$$##$&&%%===%&$%?=======??=================================%%==%%%%%%%%%?--)%???==?=%====%%&$$#$$$&==%=&$$#$$$$$$##$$$&%????&&&&&%%%&%%&&&&&$$$$$$&%%%===
%%%%&&$$$##$&%%%====%&&=========???=================>>++>?==========%%%%%%%%=%%%>:+%???====%===%%%&$$#$$&&%==%%&$#$$$$$$$$$$&&%%=?%%&&$$&%&&%&&&&$$$$$$$&&&&%%%%
%%%%&&$$$##$&%%%%===%&$==%=====??===============+!:~^~~~~~:*?==========%%%%%%%%%%+?%??=====%===%%&$$$$$$&&%%=%%&&$#$$$$$$$$$&&%%%%=&&$$$$&&&&&&&&$$$$$$$$$$$&&&&
%%%%&&$$$##&&%%%%=?=%&$%=%======?=============*~~~~:!)-~~~~~~!?==========%%%%%%%%%=========%%%%%&&$$&&$$$&&%%%%&&$$#$$$$$$$$&%%%=%%%$$$$$$&&&&&$$$##########$$$$
%%%&&&$$$#$&&%%%%====%&&==%========?========*^^~~~*+)?)~~~~~~~:>=%%%%=====%%%%%%%%%=======%%%%%&&$&&%%%&$$&%%%%%&&$$$$&&$$$$$$&&%=%%&$$$$#$&&&&$$$##############
%%%&&&$$##$&&%%%%%===%&$%=%======?=??====%=~.^~~~~*;*:~~~~~~~~~-)%%%%%%%%%%%%%%%%%%====%%%%%%%%&$&%%===%&$&&&%%%%&&$$$&&&&$$$$$&&%=%&&$$$#$&$&$#################
%%%&&&$$##$&%%%%%%===%&$&%%====?????====%?,..^~~~!*-):~~~~~~~~~~:+=%%%%%%%%%%%%%%%%%=%%%%%%%%%&$&%======%&&&&&%%%%&&&$$&&&&&$$$$$&%%&&$$$##$$$################@#
%%%&&&$$##&&&%%%%%===%&$&%&%==?=????==%%?...^~~~~!!;*:~:~~~~~~^^^;==%%%%%%%%%&%%%%%%%=%%%%%%&&&&%=======%%%&&&%%%%%%%&&&&%&&&$$$$$&&%&&$$#######################
%%%&&$$$##&&&%%%%%%===%&$&&%====????==%&-'.,~~~~-!!!!)*?:~~~^^^^^-)==%=%%%%%%&%%%%%&&%%%%%%&&&%%========%%%%&%%%%%%%%%%&&%%&&&&&&$$$&%&$$#######################
%%&&&$$$#$&&&%%==%%%==%&$&&&====????=%&>.',~~~~~~)~;+*!::--::;;;~~!========%%%&%%%%%%%=%%%%&&%========%=%%%%%&%%%===%==%%%%%%&&&&&$$$&&&$#######################
%%&&&$$$#$&&&%%==%%%==%&&$&&%===????=%&~.,^~~~~~~-!;::;;;:;:::::;-:=========%%&%%%%%%%%===&%%============%%%%%%==========%%%%%%%%&$$$$&&$#######################
%%&&&$$$#$&&&%%===%&%=%&&$$&%===????=&%'',~-::;;;!;:::;;!!::*---;::=========%%&%%%%%%%%===%%=================%%%============%%%%%&$$$&&&$#######################
%%&&&$$##&&&&%%====%&%=%&$$$$&===???=&=.,;!;;;;:;;;!)*!***;;!:-::-:=======%%%%&%%%%%%%%%==%====================================%%&$$$&&&$#######################
%&&&&$$#$&&%&%%====%%%%%&$$$$$&==???=&%,:!;;!*!));)*!;:::::;;;;:~~!======%%%%%&&%%====%%========================================%&$$$&&&$#######################
%&&&&$$#$&&&%&%===%=%%%%%&$$$$$&==???%&-!;;;!!!!;:::;!;;;;:-~~~~~^>====%%%%%%%%%%======%%=======================================%%$$&&&&$#######################
%&&&$$$#$&&&%&%%==%%%%%%%&$$$$$$%==?=%$-:);;;;!!!;;;-~~~~~~~~~~~~:====%%%%%%%%%%%=======%======================================%%%$&&&&&$$######################
&&&&$$$#$&&%%%&%==%%%%%%%%&$$$$#$%=??=&;~:!;;:----~~~~~~~~~~~~~~~?==%%%%%%%%%%%=====%==?======================================%%%%&&&&&&$#######################
&&&&$$$#&&&&%%&%===%%%%%&%&$$$$##&==?===~~---------:;;*-~~~~~~~^>=%%%%%%%%%%%=======%==?=%?======================================%&&&$$$$#######################
&&&&$$$$&&&&%%%&%==%%%%%%&&&$$$$#$%==?=%+~--------;*!;:~~~~~~~~>%%%%%%%%%%%%========%====%=======================================%%&&$$$$#######################
&&&&$$#$&&%&%%%&%==%%%%%%&&&&$$$##&%==?=%+-----------~~~~~~~~:?%%%%%%%%%=======??====%%%%%=?=====================================%%%&$$$########################
%&&&$$#$&&%&%%%&&%==%%%%%%&&&$$$$#$%===?=%?:~------~~~~~~-~-+%%%%%%%%%======????================================================%%%%&###########################
&&&&$$$&&&%%%%%%&%==%%%%%%&&&$$$##$&%==?===%>;------~~--:*>%%%%%%%%=======??????================================================%%%%$###########################
&&&&$$#$&%%%&%%=%&%==%%%%&&&&$$$###$&%=======%=>)****+>=%%%%============????????==================%====%=======================%%%%%$###########################
&&&&&$#$&&&%%%%=%%%%==%%%&&&&$$$$####&%====%%%%%%%%%%%%%%%==========?????????????================%%%%%%%%%%%%%%%%%=%====%%%=%%%%%%%&$###########################
%&&&$$$&&&%%%%&&%%%====%%%&&&$$$$####$&======%%%%%%%%============????????????????===============%%%%%%%%%%%%%%%%%%%%%%=%%%%%%%%%%%%&############################