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