################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
####################################################@M@#########################################################
#################################################@@W;.i@########################################################
##############################################@Wn;;;```iWix#####################################################
############################################W*i:.`````.`i`:n@@##################################################
#########################################@xn;`.````.,i:.,``,M#@#################################################
#######################################@Mz.``.``.,`;`;,..`,.x::i#@##############################################
######################################Wzi:``.,   .,.````.`,.;.`;.*##############################################
#####################################@n:,`...,`  .:`.``......``..,M#############################################
####################################W*;;`````..``,+.:*,.i,`:*..,,,*W############################################
###################################@;:.````..:*.`:+:,*z,:i,;zi:+;:,ix@##########################################
#################################@#n,n;.:,`.`.+:`.,;  ,i;:,``,i;,`,i;x##########################################
################################@WW+i*;:::i:: ;:``i:` ``,`ii``..` `.,;M#########################################
################################@Wn+,```,:::,  :,`.ni:.   ,;:``     .`##########################################
################################@Mi..`  .,,.,`  ., .i:+..`,;` .`     `:#W#######################################
################################M#,.```..`::``  ,i,``.;+i:``..`,:,.``..,+#######################################
###############################W#i.`   .,`;i.` ,#i+;..;;;,;.+;``:```````.x######################################
################################...``..`:,.i;,.,;.`.;*;`,.***+:,..`` `  `,M#####################################
###############################;:`.`.,:`.ii.;i``````.,.``,;;,,..,:.`  ``.`.z####################################
###############################n* ``..,``.:;` ``....``..`.,,.````.`  ```.```M###################################
#################################   `..```,,:::.`;i,,.,..`., `.``,``  `..```*###################################
################################;```.,::..``,;*.,;*##i*;,.,:..,`,:..````,``.,@##################################
###############################W`````,:;,.   .,.,;innnnn*;:i,.`.,i,..`` `````W##################################
###############################z ``.:;*#z*` `,,:;znxM@MWnz#+:.,*.;,..,`  ````M##################################
##############################W. ``,;*zMWMi,:*#zxM@#@#@@Wxz##i;i,:,,..`` ```.x##################################
##############################n```,:i#xMW@ni+zMWW@######@@Mxzzi;:.:....,`````###################################
############################### `,:i#nnxW@WzxMMW@########@WWMM#*;,:,,..````  *##################################
#############################@; `;*znnMMWWWWWWW@#########@@MxMxxi,,::,.` ````;##################################
#############################W, ,i+znnxMWWW@@WW##########@WWMWMnzi::,,,,,````;##################################
#############################n` :*+#znxMWWW@@@@##########@@WWMWnxn*:.::,:,..`:##################################
############################@#` ;*+#z#nMMWW@@@@#########@@@WWMWMMx#:,.,,....`,##################################
############################@+  ;**++#nxxWWW@@@#########@@@WWWMxMx+:,.,:,..``,@#################################
##############################  ;*+*+#nMMWW@W@##########@WWxMMMMx#*,,.,`,,:``,@#################################
#############################* `;**+##zWWWW@@@@####@###@WMMxMMMxn*;:...,..`.`;##################################
############################@* `;**##xMWWW@@@#@##@@@@#@WMxMxxMMxz*:,```;,,```;##################################
#############################i `i+#nMWW@@@@###@@@@@@@#@WWWMMxxxx#i:.```,,,```*##################################
############################## .#nxMW@@@@@@###@@@@@####@#@@WWMMxz+::.``.`,.``###################################
#############################W`innnxMWW@@@@###@@@@@######@@@@@@Wxz#*;. .``.``###################################
##############################;*:..,;*+#nxM@##@@@@@@@##@@MMMxxW@Wnnnzi```````n##################################
##############################*,`    `.,:*zW@@@@@MWMxn+;,,::,,ixWxxxxn, `````x##################################
###########################@Mn*.``,:..`..;#MMW@@Wn#+i.....,::,,,+xnxMxi`  ```x##################################
#########################z;,.``.,iii;:,..;i+zMWWx#i,...,,,;i*ii*i*#xxz++z#.``W##################################
#########################, ;.``,i#zzzn#z+;;;,izz:.;*+#znMW@WMn#i;;;+;zznnx; ,@##################################
#########################: ;```,i*i;:;,:i*i.  `.,z#*+*:,:*z#nMMMn#  :#zzzz, ;x@#################################
##########################`*n#*;;,,,, :`.:;, ,;;:x#+i:,,`,,;iinxM#`.:####*.#z*#@################################
###########################;###*:``,;.i:i::..zM+`*nn+::M,,.`.:izn#,+;;,``.zM+i;x################################
##########################W.@#@*:,i+#zM@Wx#.:W#W`:nWz#+z##*;:.,*z*,*iii` :xWMzin################################
###########################:M#@*i;;+znnzzn#`i@##::zWMzznMWWMxzxxz,:*+##.`+z@Wn#x################################
###########################+##W+#nn+++zMWWz`z@#@#,z@@WxMMMxnnxWWM,*#nnz,.+W@Mxnx################################
###########################M;#WzxW@@@@@@@@i,M@#@M`n###@MxxMW@#@@M,nxnx#,,i#@Mnnx################################
############################**nnMW@@#@@@@z`*W#@@W*+@###########@ziMMnn+,:n#@Mzz@################################
#############################M:,,;ii*i;,`,:n@#@WWWi,;+nM@@@@@Mn*,nMxn#+:iMWWxzM#################################
##############################i:i*i**+####+W@##@WW@n*i;;;:;;i*+#xxMMz#+i*x@@xx##################################
#############################@i+xWW@@@Wzn#zW@##@WW@WMxxMMMMWxxznMMMxz#+i*MW@#@##################################
#############################M;zMW@@#@xzW#nW@##@WW@@@nWW@@@##@MMMWMnz#+*+Mxnz###################################
#############################n;#MW@@@WzxW#xW@##@WW#@@xWWWW@###@WWMMn##+*n@MiW###################################
#############################n:*xW@@Wn*zx+nW@@#@@@#@@x@WnnW@##@@@Wxz##*ix@x*@###################################
#############################n:;n@@Wxn*;+++x@##@MMxnzz@@W+#@@@@@WMnzz#*inWMn####################################
#############################x,inWWxnzi.` .*nMWn;,,,*M@@@Miz@@@@WMxzz#*izWxz@###################################
#############################M,;nWxx#+i:,```.:;,i+zzxW@@@@x;n@@@Wxnzz+i;nMMz@###################################
#############################W,inMz#*i;;;;,,::*xxMMMWWMWWWWz*M@@WMxnz+i;MMMn####################################
#############################@,;xM+**;;i*+++nnnxW@WMWWxxxxxx+zWWMMxnz+i:xWzM####################################
##############################;:xWn#::*#nxnMWMMW##@@@WWMnxzz+#MWWxxxz+;:xMW#####################################
##############################*,n@@M#.,:;i+xxW@@@@@@WWMxxn+i+zW@Mxxxn+:;########################################
##############################z.iM@Wxi``,:;i;+xMxxnz#*;;,;#*#M@WMxMxn*:i########################################
##############################M,,#WWnzi..:;::iiii:;##+i;+MMxn@@WMMMnzi:*########################################
###############################;,izMnz+*:,innx@W@WM#*;*xMWWxxWWWWMMn+:,+########################################
###############################n,;+nnz+++*;*#zxxMMxznMWW@WWnxWWWWMMzi::#########################################
################################;:;##n+#*+zxMW@@@@@@@WW@@WMnxWWWMMx#;::z########################################
################################M,,;*n#+#+i#xMMMxxMMW@@@@@MxxMMMMMz*;;;z########################################
##################################,,:zz#znzzznxxnM@@@W@@@@WMxxxxMn+i;;;z########################################
#################################@i,,ixnxnMMMMWW@@@@@@@WWWMxnnnMxz*;;;;#########################################
##################################@;,,+nMWWWMMWW@@@@@WWWWWx##zxxn+;iiii*@#######################################
###################################W:.,+M@WMMWWW@@@@@@WMMMn+znnn#iii***i*nW#####################################
####################################M.`:+MxznWWWMxW@@@Mn#*++nnz+iii*+#+i;;;#M@##################################
####################################W*``,*#++Mnzz#MxWxn*;.;nnz+*i**+#z+*iii**#M@################################
##################################Mz#n,..i;;#n#i*i#zn+*,``*n#+*i**+znz#*i***+#+#n@##############################
###############################@M#*#n+i``.,;+*;;iiz#+;,. .##+****+#nnz#*i*#+##z#;i@@@###########################
#############################@M#**#z#i+.``.:;:;,::*i;:```i#++***+znxnn#**+#zzznn#*M@@@@#########################
##########################@@Mzi*+###+i+.```.,..`..,,.```*##+**+#znMMxz#**+#nnnxxxn@@@@@@########################
########################@Mnn#++#z#+#ii;.,,.```` ``` ``:*##+**+#zxWMMnz#*+#znxxxMMW#@@@@@########################
##########@###########@Wnzn##z#nz++#i*.,,;*;,,;:,,:;*+##++++#zxMMWMxnn#+#znnxxxMM@@@@@#@@#@#####################
######@#@@@@######@@WWxz#xxxn#znz##*;*`,:;i***++#znnnn#####nxxMMMMMxnz##zxxxMxMMW@#@@@@@@@@@@###################
###@@@@@@@@@####@@WMMnnxxxnxz#nz####i+`,:;;iii**#nxnzznnznnxMMMxMMMxxnzznxMMMMMW@@@@@@@@#@@@@@@#################
#@@@@@@@@@@###@WWxMMxxMMnxxMnzxnzzz#i#.,:;;;ii**+zzzznxnnnxMMMMMMMMMxMxxMWWWWWW@@@@@@@####@@@@@@@@##############
@@@@@@@@@@@##@WWxMMMxMWMxxMMxxnnzz#+i#;.:;;;i**++#zzznnxxxMWMMMMMMMMMMMMMW@@@W@@@@@@@@@###@@@@@@@@@#############
@@@@@@@@@@@@WWWWWWMMMWWMMMMMxxnzzzn#*##.:;;;i***+##znxxxxMMWWWMMMMMMWWMMW@@@W@@@@@#@@@@@@@@#@@@@@@@@@###########
@@@@@@@@@@@WMWWWWMMWWMWWWMWWMMnnnzzn++n:,;;;ii**+#znxxxMMMWWWMMWWWWMWWWWW@@WW@@@@##@@@@##@@#@@@@@@@@@@##########
@@@@@@@@@@WMWWWWWWWMW@WWMMMMMxxxnnznz+n#.:;;iii*+znxMMMWMWWMMMMWWWWWWWWW@@@@@@W@#@#@@@####@##@@@@@@@@@@#########
@@@@@@@@@WxWWW@WWWMWWMMMMMWMMxxxnzzzx#zni,;;ii**+znxxMWWWMMMMWWWWWWWWW@@@W@@@@@@#####@@####@#@@@@@@@@@@@@#######
@@@@@@@@WxMWW@@@WWWWWWMMMWMMMMnnnxznxx+nn;,;i**+##nnxMMMMMMMMMWWWWWWW@@WW@@@@#@@@@#@@####@##@@@#@@@@@@@@@@######
@@@@@@@@xxMWWWWWWWWWMMWMMMxxMMMxnnxxnxz+n+,:i*++#znnxxxMxxMMMWWWWW@@@WWW@@@@@@@@#@@@#####@@@@@#####@@@@@@@@#####
@@@@@@@MxxW@@WWWM@@WMWMxMWMxxxxxMxxxnxn#zzz::*+++#nnxxxxxxMMWWWWWW@@WM@@@@@#@@@@##@@@#####@@@#@@@#@@@@@@@@@@####
@@@@@@@xxxW@@MMWWWWWMWMMMMMMMxxxMxxnnzxx#nnz;:*#++znnxxxxMMMMWWWWWWxWW@@@@@###@@@@@#####@###@#@@@##@@@##@@@@@###
@@@@@@xznMWWWWWWW@WMMMMWWMxxMxnxxWWMxnMMx#nnn+,i+#znnxxxMMMWWWWWxzxWW@@@@@@####@##@#@#@@@@@###@##@@##@@@@@#@@@##
@@@@@@z#zM@@W@W@@@W@WMMWWxxMMxxnMMMMxnxxxxnxMMni,i#nxxxMMMWWWx#+n@@@@@@@@@@@@@@@@@@@@#@##########@@@@@@@@@@@@@@@
@@@@@x#xzWWWWWW@@WMWWMMWMMMWMMMMMWWMxMMMMWxnxxMMx+;;*#zznnz##zM@@@@@@@@@@#@#@@@#@#####@@@@@@@@@####@@@@##@#@@@#@
@@@@@z#xxW@@WMW@WWW@@MW@MMWWWWWMWWWMMMMMWMMMxxxWWWMMnnz#zzxWWW@@@@@@@@@#####@@@####@###@@###@@@##@@@@@#@#@##@@#@
@@@@MzznnW@@@W@@WWWWMMMWMWMWWWMnMMMMMMxMMMMMWMxMWWWWMWWWW@@@@@@#@@@@#@@##@######@@###@@#####@@######@##@@@@#@@#@
@@@@z#nnxW@@WW@@@W@WMMWWWWWMWWWMMWMWWxnxMxWWWWWWWMxWW@@@@@@@WW@@@@@@###@@#@#@#@@##@@##@@@@##@@#####@##@@@@@####@
@@@W#zznMW@WW@@@WWWWMWWM@WWWWMMMW@W@@MnMWWWWMWWMWWWWMMxWMxMW@@@@@@@###@@#@@####@@@@@#@#@@#@@@#######@##@@@@@#@#@
@@@x##znMW@WW@@WWWWWMW@WWWWMMMMMW@WWWWMWWWMWWW@@@WW@@@W@@@@@@@@@@@@@##@@@##@#####@@@@@@#@@##@@@##@######@@@##@@W
@@@##zzx@M@WW@WMWWWWWWW@@@WWWMMMWWWWWMWWMWWW@WWWW@@@@W@WWW@@@@@@@@##@@@@@@@#@@#####@@#######@@##@@#####@@#@###@@
@@M*#n#M@nWW@@WWWWWWWWWWWW@@WWWWWWWWWMWWMW@W@@WW@@@@@@@@@#@@@@@@@@##@@@###@@@@#@####@@@#@@@#@@####@##########@@@
@@n*#x#W@nMW@WWWWWWW@WWWWW@@@WWW@WWWWW@@WWWWWWW@@@@@@@@@@@@@@@@##@@@WW@@##@@@###@@@@@###@@###@@##############@##
@W+*#n#W@nMW@@WWWW@W@@@@WWW@W@WWWWWW@W@WWWWWW@@@@@@@@@@@@@@@@@@@@@#@@@##@@@@##@@@#######@@##@@#####@@@#######@@#
@x+*#zzW@zx@@@WMWWWWW@@W@WWMWW@W@@@@@@WWWMW@WWWW@@@@@@@@@@@#@@@@@#@@@@#@@@@@####@@@@###@@@@#########@@######@###
Wz++#zn@Wzx@@WMMMWW@@@@W@@WW@@WW@@W@WWWWWM@@@@WW@@@@W@@@x#+x#@#@@@@@@##@#@@#@#####@#####@###@@###@@@@#######@###
n#####n@W#M@@WWWWWMWWW@@WW@W@@@@WWW@@@W@W@W@@@W@@@@@@#@+#WMix#@@@@@#@@#@@@#######@@####@@#@##########@#####@####
+#*+z#n@W#M@@MWWWWW@WWW@@@@@@WW@W@@@@@@W@@@@W@@@@@@@@M++##@n*##@@@@@##@@@@###@##@@@@@@@@#####@#############@@###
*x#+z#z@W#W@WxMMMWW@WWW@@W@@@WW@@@@WWW@@@WW@@@@@W@@@nixW@MxWiW#@@@#####@@@##@#@##@#@@@@@#####@@###########@#####
+M#+++z@WnW@WMWWMMWWW@@@@@@@@@@@@@WWW@@@@@@@W@@@@@W##x#xx@M@*M#@@@@@####@#######@###############################
+M#*+#z@Wn@@WMW@WW@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@W**Wx#+z#@@+M#@@#@@@#@@@@##@@#@@#######@###@@####@##@##########
#Wn**z#@Mn@@nxWWW@@WW@@@@@@@@@@@@@@@@@@@@W@@@@@@M+z@xM@@z@Miz##@@@##@#@@@###@@###@#####@@@######################
#Wx**x#@Mn@@xMMWWMW@@@@@@@@@@@W@@@@@@@@@@@@@@@@x+@n@W@WW#WM*@#@@@@@##@@@@@###@#@@################@#@########@###
#Mx*in+Wxn@@xWWWWWW@WW@@@@@@@@@@@@WW@W@@@@@@@@ni@W+n#@x#W##@#@@@@@###@@@@@@##@@@@@##@@######@####@@####@########
#WM*iz#Mnz@WxWMWW@@@@@@@@@@@@@@@@@W@@@@@@@@@@z*in@@nW#xW#n##@@@@####@@###@@#@@###############@###@@##########@##
zWW+i#+xnz@xxWMMW@@@@W@@@@@@@@@@#@@@@@@@@@#@zn@**W@*z#z#W#@@@@@#####@#@#@@#@###@############@#######@###########
zMW#++nzMz@xxWWWWWWW@@@@WW@@@@@@W@#@@@@@##@zn##Mi+#Mx#z@#@@@@@@@@@@@@@@#@@###############@#######@@##@@#########
#MWz+iz*M#WxxMMW@WW@@@@@@@@@@@@@@@@@@@@@@@zW#nn#ziM@#n##@@@@@@##@####@###@@##########@###@@######@@###@####@####
nW@x+*#*#zMnMWM@@@@@WW@@@@@@@@@@@@@@@@@@W#W@#x*M@x@+x##@@@@@@@@##@@@@###@@##@@############@#@@@###@##@@#########
xWWM*#*+##MzMMMW@@W@@@@@@@@@@@@@@@@@@@@W+iz##*@z@@+x##@@@@@@@@##@#@@@##@@@#@@#######@@####@######@@##@#@#######@
z@@W##*+++nzxMMWWWW@@@@@@@@@@@@@@#@#@@M#+*ix@+MW++M#@@@@@@@@@@#@@#@@@##@@##@#@####################@############@
#M@@n+#*i*zznMMWWWWMW@@@W@@@@@@@@@@@#W+@@+**WWn#+x#@@@@@@@W@#@#####@@@######@#####################@#@@##########
xnW@M*n*+i+zxxMWW@WWW@@@@W@@@@@@@@@@W*iM#M**+@@#n##@@@@@@@@@@@@@@@@@#####@@########@#############@@#@###########
WMMWM+#n*i;+nxxWWW@WW@WW@@@@@@@#@@#M+zi*W#n*xxz###@@@@@@@@@#@#####@@###@#@#@#@#@###@#@@##########@@#@###########
xMWWMnin+*i*zMWWWW@@@@@@@@@#@@@@@@W+x#+i+@@x#x+##@@@@@@@@@@@##@###@@##@##@@@#################@##@@##@@##@######@
MMM@WW#+x*ii+nMMWW@WW@@@@@W@@@@@@W+Mx#W+*+@#M*W#@@W@@@@@@#@@#@@@@@@@@##@#@#######################@##@@#@########
WWWWWWx*z#i;+nMMWM@MWW@@W@@@@@@@W+x#nn#M*zWx*x##@@@@@@##@@@@@@@@@@@@@###@####################@###@@#@@@@########
MWWWWMMx*#*;*zxMWW@M@@@@@@@@@@@M*n#W+xM#M@@i+##@@@@##@@@@@###@@@#@@###@@@########################@@#@@##########
xMW@WMMMn**;i#nMWWWMW@@@W@@@@@M*+n#Mn##M#@n*W#@@@@@@@@@@@@@@@@@##################@##############@@##@W@@@#####@@
xMMWWWMMn#*i;+nMMMWM@WWW@@@@@W++@nW#@Wi#WM+M###@##@@#@@@@#@@@@@##################@#######@###@##@@##W@#@@#######
xxxMMWWMxz+*ii#nMMWM@@@@@@@@W#+i@@###zz##in##@@@#@##@@@@@@@@@###@@#@###@@#######################@@@@W@@@@####@##
xxxx#*xWMxz+i:+#xxxM@W@@@@@W++#zz#Mz#@@##+##@@@@@@@@@@@@@@#@@@@@@@###@@@@#@###############@#####@@xWWW@@######@#
xxxx+``;nMx#*i*#nxxM@@@@@@W+*iM@nW#zM#@W*W#@#@@@#@@@@#@@@@@@#@@@@###############################@@#WW@#@@######@
xxxx#```.i#z#*i*nnMW@@@#@W++@z+#@W#W+W##n##@@@@@@@@@@@@@###@@#@@@@@############@@####@#########@@@z@M@#####@##@#
xxxxz.``.,::;;,;znxW@W@@@++##@xM#@@@M+M*@##@@@@@@@@@@@@@@@@##@###@@@#################@##@######@@@n@W#@@@#@@##@@
xxxxn.``,::::,..#nnW@@@@#z#Mz#@W#@@@@#iM##@@@##@@@@@@@@@@@@@#@@####@##@@@###@@#############@@##@@#n@W@@@######@#
xxxxn,``,:;;::.`;zn@@WW#z#@@xz#@@@Wn@n###@@@@@@@##@@#@@@@@@@@#@@########@####@@@########@#######@@n@@@@###@##@@#
nnxxn,``,;;;;:,..#xW@@z;W###@nz#@@@#**M#@@@@@###@@@@#@W@@#@@@##@@##############@############@@##@@n@@##@#@@#@@@#
nnnxn:``.:;;::,.`;nWWn*z##Mi##nz#@@W*iM#@@@@@@@@@@@@@@@@@##@@##@#@@######@#############@###@@###@@nW@@@@#@##@@##
nnnxn;``.:;;;:,.`.nMMin#z#@Miz@#n#@x*i+MxnxW@@@@@@@@@@@@@@@@###@@##@@@########@######@#@###@W@##@@nW@#@@@@@@#@@@
nnnnxi``.:;;;:,.``zMz*@@xn+@Min@z##*+nnxin@WnM@@@@@@@@@@#@@@@@@@@@@#@#########@@########@##@WW@#WMMW@@@@###@@@@#
nnnnxi``.:ii;:,.``nn;n@MiMx*@nz#M++*W##@Mn#MWx@@@#x@@@@@@@@@###@@@@@@@##############@###@@##@W@#@zzM@@#####@@@@#
zznnni``.:ii;::,``z+,Wn@xinW+@@@#z@zM##+@z#+*@n#@nnM#@@W@@@@@@@@@@@@@@@###@###########@@@##@@MW@#zzx@####@##@@##
zznnni``.:i*i;:,``+**xn*WWinM+n+*z#Mn#**@##ziWxW#WnWM#@W@@@@@#@@#@@@@#####@@##########@xz##*MMxW@W*n@@@@@##@@@##
zzznni``.,;ii;,,``i#z#M+;xM*@z;*+#@@##+*@z@niMxM#W#@n@@@@@@@@##@##@@@@@#############@x#nMMx#MWnMW@+z@@@@@@@@@@##