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