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