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