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