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