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