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