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