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