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