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