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