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