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