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