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