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