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