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