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