########################################@W################################################
#######################################xi@################################################
#####################################@#;+#################################################
####################################M*i,##################################################
##################################@+ii,.x#################################################
#################################ni*,,.,W#################################################
###############################@+ii:,,,:@#################################################
##############################n;i:..,,:i##################################################
#############################*::....,::*##################################################
############################ni,`....,:;*##################################################
###########################xn,.`...,,;;i##################################################
##########################Mz+,....,::;ii@###################@WMxz##zznx@##################
#########################@#+:,.,,,,:;;i*@#############@x#+*****ii;:::;x###################
########################@##::,,,,:;;i**#W#########@x+i**+*i;:,.`````.z####################
#########################n;::,,:::ii*+#nM######@n*;++*:...``````````i#####################
#######################nni::::,::;**+zzxM####W+;*#i,.``````````````.W#####################
######################W#*;:::,,:;i+#nM@@@##W*;+*,.`````````````````+######################
######################+#;;;ii::i*#znW@###M*;z+,```````````````````.W######################
#####################Mz+*****#i#zMW@##@n;:#+,.```````.,,,..```````:#######################
#####################+;..,:;;;;ii##xWz.:#+,```````...;i;*;:..````.+#######################
####################+,:**+++++*i:;;i+#zni````````..,i;```:,:.`....n#######################
##################@i:#nz+iiinMMn;,.,,:;*+*;,``...:i*i``````:.....,x#######################
#################@i:n+:,::i+W@W;`i+i.`.,,:*#*:,:*i,````.i#+#.,.,,,M#######################
################M::nz,,,i*nW@z`,+;`.:;,``.::+zz+,````,*z##+#:,,,,,M#######################
###############n.iM#*,::+xW#z:**.`````,::`.`.,:::```.+#ii..z;;::;;x#######################
##############+.+@W#i:iix@#n,n;,.```````;:``,`*i:i::+z.i.z.+iii;;;x#######################
#############+.z##*i::*zW@x,n:::,,,````.;``,`.i:x;.;n,*i:+#++*****x#######################
############+.n##M,;:i#M@W:z*:`+i`.,.,:;,`..`:+:W;iz***,x:Mz#z+#z#n#######################
###########n,x###i,::*x@@;+z;;``z*..:*:,``,``in`.;##**;,+*nnnWxxWnM#######################
##########@;M###M,.:*#W@+ini:;``,n:`.;#,:,``.in.;nz#*.,:i**;ii#M@@@#######################
###########@####;,.;+xWM:n;;;i.:,nz.``;*i;:;*+n*n#z;`+n:i.::;i+**x########################
###############n,..;n@@;z*;:+#*ii*xz:.`n.+:*zM#nnn:.xxM:+@W`+i::*iix##@nn#################
##############@:,..;n@nin;+zx+``.:Wz#:`z;.n*iznxn+.ixMMMW@z.MxWMz*i+z*;n@Wnn##############
##############z..`.iM@in*;zn:*+*i;;W#;`*x,.++zxnx`zMzzxW@x*;n..inW#;..::;#M###############
#############@,,.`.+Mxin;##,zn.````;*``.W*,.innM*`MW##nMi*xz,```+#@WxMW@##################
#############z,.`.,nM*z*z*:xi,` ````````ix##*+xMi`n@*i*nW*.````+##########################
############@:,``.:nM;zn+ix*,,````````````.:i##W#``::;+zn`````;@##########################
############n..`..;x#+z#;xi::i,````.. ```.,;;+nxW*`.::;+x.```.M###########################
############:.``.:;x;z#iM*;;iz;,,,.,, ``.::;++#xW@W@z.:*n:```+############################
###########M..`.,;:z;#:x+i#MMWnzzii+,``,..i;;znM@@@Mi`.;#*``.W############################
###########*.`..::++*;#z+xxzi,..:izi```,;i;+#nWW@Wz..`.:+#``i#############################
##########@..`,:,,n:iiWMz;:*#n#+*;.```.:;#i*MWM#i,.```.;#z..z#############################
##########z``.;*:#*:iMMi:#WMxx:`,:``,,.,;;*nWz*;::,..`,*nx,.M#############################
##########;.`.:**x`:nn,#WM+;;::..`.`,`.;*i#ziiz#++i:,`.;#n::@#############################
#########@`.`::;W;`+z;x@z;i+xW#.`.`.,,+i;+MMM+:;;##*;`,i#n;;##############################
##########``,:,`;z`#zxnnx@@@x:```,..`ii*#xM#*nxM*:,;:`,i#x**##############################
#########;`.,`.,``.i+##++##:``.`.:..;i*i*;,,,,::`.;i.`,;zMz###############################
####W###W``.`.,+i`.:,,,.``:#Mz*i:,....,,,,:,,,::```,``:iz@Mn##############################
####i@##z`.`.,::zi`:**:,:;,`,zMz*:..``.;::i,:::,```,`.:ix*nW#@Mznn@#######################
####**##n;,.,,.:*M+`:ii,``,*;.:nx*:,...+;;+:::,,```,`.:*x;;#@Mz***inxW####################
####W`;xW*i;,,::i#Mz`.i#;.``:*;`ix*;:..z#i;:;;,.```,`.;+z`+xx**##;iii;n@##################
#####z``..*i;;i;*+#xn`.:n+.```,*:.#zi:,x+*i:;:,,``.,`,i+xW@@z#*#i:::;##znW################
######M+`:ii;:::i+*zWn``:M*,````;*.;x#;Mnn#*;:,:``,``:*#@@Wz*i#i:,,i;;i*+zM###############
########WWn+::,.,,,i#Wz``;M*,`````;;,n#WWxnz;;,,``:`.:*zWxz*ii*:,,:;::,;*+zMW#############
###########@+;:,,..,,:** `*xi,.````:;.+@WWx#ii;,.`,`,;*xxxzi;;...;,..:*;i*;+#@W###########
##########@i.:i::,,,,,:#;`.xMi,.`````;,z@@xnn+;:.`.`.;*xz*::,,,.`,...,;::,,;*zW@##########
#########W,`::*#::,,.::;n.`;Wz*,.`````;+n@WWz++i,*,`,;+Mi::..,...``,...,:::##zxW##########
########n,`.;:*+#::..,,:zn`.#W*;.``````*iM@Wnz+:+W``,i+M:.,,```..``...`.;iii;i+nW#########
########.:..:;+*@#,..,,,iWi`,MW+:..````.#*W@xn#ixx`.,;#n```.```.``;:..:**,.,,,+##W@#######
#######`,:`:i+nnW@;......+W.`#@z;,.````.:x#@WMM#Mz`.,izz```.``.ii+i*++*i##+*+;i+#xW#######
#####x..,,;;zizM@Wx,`....:n+`,MW*,,.```..:zn@MMxW*``,iz#```.`,**;.`...``.:;i*z*;*inW######
####M.,.;+:*++M@MW#W.```.,+W.`+@#:,.```...++WW@@@*``:*zMxxWWWWWxni`````````.;*+x#+znM#####
###@,`.:;i;#+zWWW###n```.,iM+`.zn*;,.``,..,x#@@W@i`.:i#@@@@@@@@@#.``````````.,i;xnxzW#####
####`.;:,i*zxn@W#####+``.,;nW``,x*:,,.`;,,,;xW@@@:`.:*+@@@@@@@Mi*.````````````,;:zznx@####
##@,`i;::#zzM@@######@,`..izWi`.+*;:;,.:;:,iW@@@@:`,;+#@@@@@@#,#i.``.`.````````,::+nM@####
##+..:;i*i##M@########x``.:ixn `iW#*i,.;i:n@@@@@@;`.,;+WWWWx;:;#:.`...,..```````.::+xx####
#@,i#,,+z:z#M##########;`.,:+W``iWn*:,.;#nxxnnnz#:.`;:;,i+*+#+;*...,,;,,,..`````..;*+M@###
#M`,#.:;+;+nW##########M``.;#@:`:xM#i:..``````````+:zMz;MxM##;i;.`,:ii;;,,```````.,:z#W@##
#z`:,i*:i*+#@###########;`.:+x:`,nzn#*:,..`````````+;xn#@WM*x:z,..:+nz#+i,.```````.i;x+M##
#*.:.i;:;#n+W###########n`.:#,.`,MWz+;:..`.`````````*:MW@n@z+i*...+W###@ni,```````.,*;xnM#
@,,,.;.iiii#M###########@..i``,`;@Wz##;;..```````````;;M@x#:,#:``,x######n:.``````..;*;x@#
M.`,::.,;*:+M@###########i, `..`;W@Mz#i:,....```.:;;;iizMM;.,+.``*@#######*,.``````.,*##M#
x,`.,i.:,i+##M###########*.``,``:WWn#+:,,..``;zM@Mxznn@Wx#;.::``.n########W:```````.,izxn#
x:`...;i,,:#n#@##########`.``. .;znM+i::,.`in@@x#Wnz+xxz##,`;.``,@#########*.``````.,:+x@#
x:,:,`,,;:,*inM@######W;.`.`,``,iMWnii:,.,x@n@x*xx#i*x***:..+.``i##########z.``````.,;i#n@
@,,.,`,,,,;+*+##MW@@M#..``.`. `:inM#i,..iW@MxW+;,:,:+,...,.*;```###########z```````.:*zxM@
@,,``.,;`.::;+;i;*.:```.`.`. `.+Mn*;,..*xMzzWi,..:`.,i``:;*;```.x##########z```````.,;#nx@
#:,.``,,,.,;,;ii::i:;,.` `;``.;+Wn;:,.+@xM+*i,,.:.``.,`:+*.````:@##########*`````..,i**+M#
#i.i``.`.::.i;;::i,.,`..`,```,*nW#;:.#Wnn*ii,i:,::``.`:+*`````.+##########@,````..,:ii#W##
#n`:i``,``;..:.,;,;i,,,`.,`.:*+Mx;:.#@#iz;i,::..`:.,i+++,`````.x###########`````..,ii#MnW#
#W:`*,.:..:,.,;:,.:.`..``zx*nWMn#:.+nx+,,;,``,i,,`.#x+#;``````,W#########x.`````..::*n+@##
##i``i```::.,:,.;;,:,;.,,`.iM@x+;:##xz:,.`.`..;,:;;*nn+.,`  ``+@WW######z.`````..::;z*Wx##
##M.`:;```,.`,:;:.``.``.````n@Wz+zi..*:```,..,.,,;.*#Mii,`  `.z@xxzznx#;```````..;:*iMz###
##@;``i+.`.:,,,..,.;,``,.``,.`:zz;,.;:``.`,..,,,.,,i*@i#:````,WWxx+;.````````...;,+;z#@###
###n.``,x:..`.,..,:`.,,.`.i.```,i,.:;```...```,`,i,:in+#:.```;@xnz*;,.````````,:,+;z+n####
###Wi,``,*````:,.;,.``.```:,..`:.`,;.```...````.::,,*z#z:.```+WMz#i;;..`````.,.,*:+zz@####
####n;.``;#.``.,..,.,,...:,,,,....,;```..``.`,:*;:,;;#zzi,``.x@xxzi:;....``...:i:*n*@@####
######:,``;++i:.```:````,`.``.,...,.````````,#*i;;:,i+x#*:..i@MMz#+ii,,,....,,*;:x+x######
#####@*;.``.i*i.``.,``...``...``.i`.;`````,:;iii*i::;*W#*;,ix@WnM+*i;,,,,.,,:;+:zzn#######
######M*:,``..i*iz:``.,:```,;,:+:#i:*.````,``i:i**;;;+Mx+;+@##MW+x#;:,,,:,;:****Mn########
#######x+i,```.,,,z#iz*i*i;zi;i:`.`..```````::;***;;;+Mxzx#####xM#+*i;;;i:*izz+z@@########
########xzi,.`````,,`,:`;:`,`.` `` `  ,```````;i***ii*x@@#######xnz+*;*i+**+zxx@##########
#########W#;:.`.```` `` ```` `` `` `` `.```.`.:;i*++**z##########Wnn+++#zxznM@############
##########@#*,...`````` ```` `` `` ` ```.``````,*+#+*i+@###########WxnxxMW@@##############
###########@n*:.:,`.``` `  ` `` `` `````.``````..;+++i;n##################################
#############x*;ii`:.`. ```` `. ..`...,,`:`````.`**+#*i*M@################################
##############x#+#::;`:.`.`,`.: :;`::.;i`ii.```...i*#*i;in@###############################
###############WnM+:#,ii`;`;;.*.;+.;+:;#*;+n+.```:;.#+#:,,+###############################
################@@x*n+:z`+i,z.#*:#+:#z*+xxW@@W#,,:,:*+*,..+W##############################
###################WxW+#zix;z#*x++xz#xnM@@@@@@@@x#.``;:::,+x##############################
#####################@@M@xxWn@xMW+;i#+n@@@@@@@@@@@M..i;:::+n##############################
#################MW##@@@@@@@@W@@W`:#zn@@W@@@@@@@@@@#,`;i:,*x##############################
################+.:@##@z;+@@n`*@*.;z#W@i`n@@@@x.,x@x```*:,z#Wzx###########################
################:#:n##W.#,+@:;in.,#zn@+;.*@@@@i.i,@x`:+i,*@M,``@##########################
################:#i*##W;*#+M`iii.*nz@M`#,xnxn@:.*zzn`,+iiW#;` ;@##########################
################i+,#@z+i*z#z;*;`.+zM@n`,z:,.:M,i;.#*.;++M#W.::;x##########################
#################iiM;`..`.i#zx,`inMM@x`,x,;.x+z:Mi*;`i++n#n.*z`n##########################
############@+**n:n#,n**i:..`.;,;nM+:M,;W;#.#,#inM#..*xz.Mz;iz.@MxW#######################
############i`.iWz+ii##:...;:#*.nxWinWxx@nxxW#,Mz@n`ix@#*inz+z*;``;#######################
#############`.#n```,`,i:+#nxi.*nMn#;.,:,``.,#+WMWi,:MW*z:WzWz.:`,i#######################
##############*n:#Mi*iznMWWW:.ixW@@Wxi*;,:.:,`#x@W.,#Mx#`,inWiz;*;z#######################
###########xM#WM*iinxMW@+*+.;ixMnnn#WWMMnn*n+*;xn#`.n@xn ..,n@n`i:@#######################
##########@..nMn+i+W@@n+Mz.;zMWi#;;..+znW@W*i.+zzi`;zMnM ,..`##;nz########################
##########W,*z``ii;;:,in`.;#M@xW+`.#i#,+#+#`*,*#W..,x@nM`*#;.,WnW#@##@xx##################
##########xiiz``*#*+*+Mi`:nM@:`ii``..z;iM:: ;#,nM`,#MW:n+:zM;`nW#W:z@i:,##################
##########@;z++:+M@#nxz`*xWW#+*;i``**+M*xi.:iizM#``i@x:Mzz;xn.i@@;.,M*nx:x################
#############iMn#Mn`:zi:@WW*.:+.#:.#W*..+M;ix+#@*`:#WM:x@;#*i*.M#`,`#WW*zW################
###########@;##xW@:`;+;#nM+..#i,#xix:`,`.`+zxxn+`:.n@W,;nx;z.z*#iii.z@n*x#################
############zz*Wxx`,`;:+*;;:,Mi+,MMn;zxz.i,.`...;,:x@z++x@nMzzWMxx;,#WMW##################
###########;*xnMnx,+;,i*;``,*nxz;xz+iii#;.`.:.+*n.iM@M+:.,:;,,:,+@*i*#####################
#########@``,;ix@W.#+:;n``,.``M+nWWM#.`..;++xM@x.:z@##@Mii:.,``::nWMi@####################
##########*;,#z;*W:;x##z, i+i,i#xz+.`,.izW@@@W#`;#@MnxW@@Mx++:z*:,izi#####################
##########n+;.iMn*i.M*z#*``;Mni*@z`::++W@W##Mi`:#W@i*+xzMW@WMxz,``.##@+###################
###########n*+;ix@z.zi+*#;*:i:+;z:*#xMWWMM#n..;zWnzi*:n@M:,*Mz#,`,;nx;:+##################
############x*zn+nx.++**W;:*+*x**:#`iMMz:@i`,,zW#+;i+++x;`.:n+::,,+zM;+z##################
##############x#xn#.;n:#xi`.#;*M#xi,:,:*n+``;+MWnz;;z**#;`;*zM#*,:@Mxxz@##################
################n;W,,W*M:z+,#M:n@@,+##n++`;zzxWzzM;*z+**;,#znW+.;x@MM#M###################
###############niM#,,Wn,:n@:inz;M@,iW#:z`*@xMW;#z*M++z*;;;n;*M+nW##Wn@####################
############@W@:#;i++@*.*z#z+zW+#@;,+#.#`W@@@*;#M*#Mnn+#+*xi+M+++n########################
###########n+;*.,iWM:n*+.:znnn@@#W+i+M:n,MW+:`#M@M#zWM#x+xx++n##+;+@######################
##########W+:;+;,*n,`iWxxzzxWMW#@*,xn@x;;+;M;::inWWxx@z@;nWn;WMi``*#######################
##########n,,WMM#nW`.;i*#nxM@@WW;`*i+W#,*Wx@W#i,in@Wx@M##;;ziMW;``;n######################
###########+**+xxzW,n...,;i*#Wz.,n.,;+;#@i,i#Mn::*z;:i*nM.`ii@@Wi+;@######################
############znnWMzWi#nMMxzz#n;`*@W+nz*+:znnWW@@x::x*,.#xW,`:+##W*ix#######################
#############xxMWW#@x**+MMW@,.n@WMiizW+`::,;*M#znMWx+i#;:x*###############################
######################nxxW@+iWWn+M#,+xW;,.,:*M@#,#W@Mzi.#WWMW#############################
#####################W.;+@@z@#+iW@@xznMx+*#znxz@WzzWi,in@M@###############################
#####################W.,+#Mi:,:+##zn#nxW@#xMWz+iWzW#Mz@@xMM###############################
######################xn##xxn+,,*x;,nxM##M++M:x*xx+##@zMM.;W##############################
##########################x,*n+##@i#+*+W#*;x###:i#W###@+z,`x##############################
##########################W;#M####MWM..+#:.#W####iM#####xMW###############################
####################################zz,M#z,;@##@i+@#######################################
##########################################zW####W@########################################
##########################################################################################
##########################################################################################
##########################################################################################
##########################################################################################
##########################################################################################
##########################################################################################
##########################################################################################