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