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