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