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