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