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