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