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