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