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