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