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