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