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