@#@@##' .'.''.'
@@@#@/' -;;/X**SXOXO8IXXXX*I='
@@@@I" .:/S/+S*888$@N$@#@@@@@@@@@I*+
@#@@"" .";O/XS8X8X88N#@##@@@###@##@@@#NS;
@@@@=' "+=/*/X*8NXN@8@@###N#@@@@@@@#@@@@@@@I=:
@#@N- +/;"I8N##S@X8N8N@@@@@@#N@@@@@@#@#@@@@@@@N;
#$@: ';?X8*X##@#@@@N##N@N@@@@@@@@@@@@@@#@@@@@@@@NIX-
@=:- ;+;XIX$N@@NN@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@#@@@NXO'.
/:+ ';/I*S#@N@@N@@#@#@@@@@#@@NN@#@@#@@@@8@@@@@@@@@@@@#@@I;.
;:' ++;XXX8S##@#@@#8NN8@NNN@#@@N@@@@@@#@@@@@@@@@@@@@@@@@@@@@8;.
='- ;+/8N@$8@#N@##@N$##8@@8@@@@@N@@N@N@@@@@@@@@@@@@@@#@@@@@@@@O'
. '*/I88@#@@@@@@@##$##$#N$@N#N@@#@@NN@@#@@#@@@@@@@@@@@@@@@@@@@S
. */*IXS@N@@@#@#N@NN#NXN8#@N8#@#@@N@#N@@@@@@@@@@@@@@@@@@@@@@@@@/'.
. =*//X8XNNN@@8@@N$#X88S#NXN$#@#@@N@@@#@8@@#@@@@@@@@@@@@#@@#@@N@N;'
;-""88XXI$$S#88####88#88N8N@N#@@N@@#@@@@@$@@@@@@@@@@@@@@#@@@@@@@@8"
+="?X88XSINN8I8*8$S$8N@$N@#$N8$@N8@N@@@@@@##N@@@@@@@@@@@@@@@@@@@@@@/
'=;/*#/*8S88XXO*?OOO8SX88X$N###N@#8@@@@@#@@@@@@@@#@@@@@#@@@@@@@@@@@#$
=;??;*X8SX$NN8O88XX**XXXSNN#N####@@#@#@@@@@@@@#@@@#@@@@@#@@#@@@@@@@@@@'
;"?SXI*SSS8@#I;S8*8I/XX8$X$#$N@N@@@#@@@@@@@@@@@@@@#@@@@@#@@@@##@@@@#@@'
-=;;I"S88II88$N/?O*XXSSS8#S$#$#@@@@#@@@@@@@@@@@#@@##@@@@@@@@@@@#@@#@@@@-
+/=;???OX*8I*8I/*/OO?/N88XX8#@@@#@@#@@#@@@#@@@@@#@@#@@@@@@@@@@@N@@@@@@@=
.:;-;;?;?*XXSI8/I/XX$S/SISSX#@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/
===;+=;;=*=*OII?./""XI/X/*IIX88N@#@#@@@@@@@@@@N@@#@#@@@@@@@@@@@@N@@@@#@@?
;'":-/;;;/??X8O?. '++?";""XOSOISNIN@$#NNN#8N@N@@N@@N#@@@@@@@@@@@$#N#@@#@*
==+'=?/"//;?8""'' +.---+'=-""+?;/I/OSSXXXXSIIXXS8@8@@@@@@@@N@#8@88@@@@"
;=.-;=?;?/"*I+?.. . + ----'+;;"?"?/S"*OOS8IX#@@@@@@@@@#N@N#@@@@O
?===;/?*OOI"?-:' ' ' .+.-.-'+"?+/"?/I?8XS$N8@@@@##@@S$$N@#@@*
;;"";*?SX8/X"+-' .. -. .-.;"=?":"/?/IXXSX$N@@@@#@@NN#$@@##/
==/;**IS@SOX- . '' - .-+- +-'":""""";?ISSXXSN@@@@@@#@N8#@#@@'
?=+ '=?;**X8@@$S+. . . . .-.= -+'":"""""?8S88XXN@@@@N@@@@@@N@@@-
@@@@;; -;";X8I@88?.' . ' ..... .--+-.+-="+I;""XISIS8SS@#@@@@@@@@##@#@8.
@@@@I= ="//X8@#8;".. ' . -' .:=-= ;+"?="//OXSSX8S8@@@@@@@@@@@@@@/
@@@@/+ '""*XS8$*=+. . '.':. ' . '. ;- :=+;=+"-;;?"S//XSO#8I8@@@@N@@@@#@@#N:
@@@@. ".==*88X#".. -.'"?*?/;;+-. . -''-'"--:-;="/;?*OXI88N8$@@@@@@@@@@@@@X'
@@@@-=: '-*8SSS+ .. -"+-?";O;/?: . --".+'':--;";/"/"SIXIIXNX8@@@@@@#@@#@@8?'
@#@#+ - +"I8IS;. ' '. -. ..--/"/"/;+?-="'+?+.":O"?O?*XSSIX@8@@#@@#@@@@@@@*:'
@@@#+' +;/$X"; ' .'. -+-.'::?/":;?"?;?*;"*/?*SS8XX$88@@N@##@@#@@#@@N@;'
@@@@:+ '::/$/;'. . . +"++:-/-:"=/;"?:"?"?"O?OSXX@8IXSN@@@N@#@@@@@@@@@@:'
@@@#?' :O""S?= . .'+SXO$I*O"""??;?==="OI"SOI@8*I"-???IN8#@@@@@@@@@@@@'
@@@#O-.;O;//; .+;+.?;?*";"?IOI/?...:*/OX$SSO/O*S?/OO88@@@@@@@@@@@@S.
@@@#X" +/?"*+ ;+S*:+;"/O?/= -.""S@@I#S"X;X@NX@N@@@@@@@@@@@@@S
@@@@#X'.":;?-' .' ' :.??;;-. .+/8@@/*?.:"SSIS8@@@@@@@#@@@@@@?
@@@#@8' =;:/=. -+.";=O;?;/-- ' "I8@$?:=-::=""I8N#@@$@@@@@@@@8;
@#@@## ;=+' .' '=:"";:;;= ="?X#8";-:=/"IXXN8O@8$X@@@@@@@8+
@@@@N@" -.:?: ..+' .+" '?*8#NIX":/??//I/IX##XN@@@#@@@/-
@#@##@8'. .;=. ''- .=+-+- .-"IX$SSO???:*"/SIXXS88X@@@@@@@$/?OOS
@@@##@$?' .: . . ' ' '= =-'- - IIS#8#@I/?;/IO?XS/SISN#@@@@@@@@@@@@
@@@@#@@#; .+ ' ''.--+ ' .. -"?8@S#NS?/"/SO?I?"IXS8@@@#@@@@@@@@@
@@@#N@@#@S"?; ''. - =--.++. '. ' ' .""I@@N@#O/?OXI?OX/SS8#@@@@@@@@@@@@@
@@@@@@@@N*;// +'-' - +;- '."?I8#@@$SI?S?SIXXIX@$$@@@@@@N#@@@@@
@#@@@@@#@X;I?. .- =- ' . ' -;+ +""X##N@@/SO?SXI#8S#@$@@@@@@##$@@@@@
@@@@@@@#I=O?: .. =.--. . '- ':*-- .. +;?/8#N@@@*"?"XIX#@##88N@@@###N@$@@@@
@@@@@@@@@@N@8= . --. . .'++" ..;=- ?O"XSN@@@@NSO/ISI$@#@#8XN@@@#$@##@#@@@
@@@#@@@@@@@@@/ '-. ' '-=- . . -"/??S$#NX8IO/"S8I8@@@@@8@@@@#@##$###@@
@@@@@@@@@@#@#S. '+..' +.:= ' '. ..-O*'"?SXXSXIXI*OXSX@##$8$@@N###@##@@#@@
@@@@@@@@@@#@@#/ ' .= . ++- ..' .- . +/"=+"?S?O8SOSS/$8N#@@@@@@@N#@$#@@@@@@@
@@@@@@@@@#@@@## ...+- '--- .. '."SI+'"IXI8S$X$88$X#@@@@@@@@N@@#@@#@@@@@
@@@@@@@#@@#@NN@ . .. .---- . . . . .'"?";+:XXO8N8N#S@88#N#@@@#@@#@@N@@#@@@@@
@@@@@@@@@@@@@N@+ ..... '+ : "?+"+ ++.-=?*;;+;S$X#@N@@$##$S#@@@@@@@@@@#@@#@@@@@
@@@#@@@@@@#@$$?- '. .+--+."*??O+-+:;**O*OOII8$I8$#@#@@$S8S8@@@@@@@@#N@#@@@@@@@@
@@@#@@@@@##@#?.= -- . '??;=.. ..- '"'=:O;OO*8SI$@@@@"XS@@@@@#@@@@#@@@@@@@@@@
@@@@@@@@@#$@X..'. . ....+;;.-.+'-'-... '/""??IXI@@#@N@/SS#@@@@@N$@N8N8@@#@@NN@
@@@@@@@@@@$$" + ... +.= "=.+ -'-""?/?/#XSSSXN#8@N@#@I@@@@@@#88@@N@@@@@N@@@@@
@#@#@#@##NI? ...---+-;--. ----':=?==";"I*ISIXN8#@#8@@@@@N@@NN@@@@@@@@@@@@@
@@@#@@$XS//+ ' ' '-+."-. . .+.+ +- + .+"="SI$SS8#$#@@@@#@@N@XIN@@@@@@@@@@@@@
@@@@$S?"ISS. '++' '.+-=+ . . ' .'+ ;"IIXISS$IXN@@@@@X#@@NNN@@@@@@@@@@@@@
$##S:OOI$IS' '' ...+ .- "..+ ' '. '- ""?IIIS8S8X@@@@@@@@@@@@@@@#@@@@@@@@@@@
S/"O*SS888O?. +' +-'=+.--.-:-...'+--'+;"*"IXOX$$$@N@@@@@@@@@@@@@@@@@@@@@@@@@@@
OIXOI8SO$$S$' '+ '--..;+"+ ---.+:+O*"S?/OI/NX#@X8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
8S$X888X8S88O+ + ;..;-= =;:+:---+""*?XS8X88@#N#@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@
8X@$XNXX88S$88++ '? .-"-- =='"--:+-:-'SIX@#N@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@
$N#X888X8SI88$8+ -+ '+;.--/:-'-==="?+:"IX8XS$@@@@#@#@@#@@@@@@@@@@@@@@@@@@@@@@@@
8$#$8#NSN8SN8*$8*"- ';;'-'"+'.;;:++;:;I*/SO"$@N@#NN@@@@@@@@@@N@@#@@@@@@@@@@@8##
$$$8#8N$$8X8S88$#@".."'.'+;-''+/"';";;;"*O88XX8N8X#@#@@@@@@@@@@@@@@@@@@@@@@@@8O
#8##XN$XN8X8S888X#S??=-'--* ;+"*';;/;+;*X8*/OX@8X@@@@@@@@@@@#@@@@@@@@@@@@@@@@"
@#$88#8NN88SS88SS8$8N8*+--='+=="'+;*/;-;*XX/*/@N8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8
$XN#8#$S8NX8X888I8XS#$8S'";'.;*;:';II'O;O@OO?$##8@@@@@@@@@@@@@@@N@@@@@@@@#@@@@@
$$#8X$$$88XN8XX8888XNNO$8$#8I;I:=;/*I;//8N**OI$$X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#X#$8$NS#$88$X8$888S$8S88S8$$@@88OISX;IOSI*I8#II8@@@@@@@@@@@@#@@#@@#@@@@#@@@@@@
##$8S88NN88#XX$N$$$8N88$$XN$$XX8@NN@88@X@IO8##@@@@@#@@##@#@@@@@@#@@@@@@@@@@@@@@