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