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