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