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