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