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