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