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