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