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