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