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