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