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