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