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