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