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