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