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