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