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