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