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