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