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