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