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