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