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