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