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