######################@M################################################
##################@zn#zzW###############################################
##################WzxW#MW###############################################
#############Wx@###WxMzn################################################
##############nW##@#zWMnW###############################################
#############MMW#x#Wzx@zn###############################################
#########xx###@n#nznx+@++###############################################
########@#x@xx##x@MMM*x+*@##############################################
########M#nM+zMn+W@+M*+#*x##############################################
########M#x#znMW;n@*x+in+n@#############################################
#########Wnx+M+@:#n#*#i*nxW#############################################
##########@#z+#zi,x#i*::#MM#############################################
###########n*#i++`#xn;,:inMW############################################
############+#+z;`,xMz:::#MM############################################
############xizzi``#Mxi::ixMW###########################################
#############;#z+` :xx#::;#MM###########################################
#############nizz; `+xni:;ixx@##########################################
##############:#z+` :xx+:;;zMM##########################################
##############zizz: `#xz;:;*Mx##########################################
##############@:zz+. ;xx+::;zMM#########################################
################*zz: `#xz:,;*xx#################@#######################
###############@;zz+` ;xxi,;;zxW@############Wn++n@#####################
################+#zz: .zx#::;*#**+#nMW######x***#zn#####################
################W*zz*``*xxi;i*++++**i*#nW##Mi*++#nz@####################
#################+zz#, ,n+;***iiii*+**i*+##+*i*+znzW####################
#################M*n#i`;*;ii*i*iiiii*+;*#+i+***+nzzM####################
##################*nz#iiiii*;ii**i;;i##+i+i+*i*znz+M####################
##################xzn+;i;**i;:iii+**++#+*#+++i+nn,.z####################
###################*;;i***iiiiiiiiii+++##+++*i#n;..;@###################
##################x.:;ii*ii*;+iiii++i*+*#**+*in#...:####################
#################;.::ii;i:i+ii**+++++*+#+z++**n*`..,;###################
#################:.::i+*+ii*+ii*+++###+**#+**+x;...,,x##################
################W`.;i*i*++i;#+*******###++##+#xi,...,+M#################
################+`,i;;:;+++i++iiii*+**+#zzzn#zn;:,:,,*nW################
################i,;;,**i+#z*ii;;i;i+#++++#znznz;:*i#:*nn################
################,i,;*+*+:i+*iii;;i**++++#+znnnzi;xxM,ixnx###############
###############x::,ii**+*+++#++#**i+#z####znnxni;M@W,;xznM##############
####@###########;`;i*+i++*+*#znzz###zzzzznxnnxn+iz@x.;Mzzz@#############
#*i;iz@########+`..***+#+#++#zxz**+znnnxxMxxxxn+ii+i,#Mxnnn#############
;;;ii+z@####Wxz;..:i+z###+#+#+z:   `.:+nMMMMMMMz#**i*xMxnnzx############
ii;i*#nx@@M#*#z*,,;*###z##**+##:    ``,i#nMWWWM#++###zznznnz@###########
i;ii*zxMx+ii#nM#.,*++#z#+#z#*+#*   `.,:iWz#M@Wz#+**;;i***#nnM###########
i;ii+nxMn*i+nMW#,i**i;**i*#nzz+z,```.,:;z**MWn#+++++i;;**++#n###########
iii*+xMMziizMWW*;*i*i,:iii**#nnx+,..,:;;;i+Wn#++++;;*+;ii*+++n@########@
iii*+nMx+i*xWWn;++**i:,,;;;,;+znx#;:;;iii*nnz#ii;;***;+;;;i**++zx@###x*i
ii***nxx*i#MWW**iii*+*::ii*;,i+*#nn#****#nxz###;i**;i;**;**i+*+***zz+++*
iiii*nxz**nWW+**;;*;:*++;,i+i:*;;+#znnnnMnz##++ii*i;**iii*i*i*iiiii*+#++
;i*i+nx#i*xWWii****i,,i+:,,;ii#*;*######zz+##+ii**;;i:i;;*i*i;ii;+z#*+#z
;i*i+zx+i+WWW*****+i,::**;::;;*;i+**++*+#**+++*i*+*ii;;ii***+*+i;nxz+#zz
;i*i+zx+*zWWM++++++*ii;i#i;:i++;:;+i;i+i*+*i**+i*ii;**i;;;*i*i+*:**++znn
;iii+zn+*zWWM+##z+***+++#+*iii#*::;+i**i*i+*ii+*i**;;i*;iii;+*++ii*++znx
i**i+zx+*nW@W#++#z++***#++++*;*#i;;i**#iiii++i*+**+i;i*i;;+:*i++**+##znx
i*ii+zx+*xW@@z#+*+z##*+#n#+#+*i##*ii+i*+**;i++i*+++*i;;+i,;i+**z#++#znnx
i*i;*nx++MW@@x#zi;i*#++nMxz###++z#+*#*ii*+*:i+iii*++**;*#;i;+**z#++#znxx
i*i;*nx#+MW@@Wnz+i*+#zzxxnnz#z####+i##**;;*i;#**i;i+#++##z#i*#+####znnnx
i**i*nx##MW@#@nz##+#*#xnnnxxnznzzz#++z#+*i**;+##*ii*#zzz####+zz###znnnnn
i**iinxzzWW##@Mnz#z#+znznMMWMnnnznzz##zz##++##+z##++#zznnznzz#znnnnnnnnn
i**iinxzzW@##WWxnznnnn+nxxMWWWMxnnxnzznnnzzznnnnnnnnxxMWMxnnnznxxxxnnz++
i**iinxzzM@##WWxznznxz#znxxnxW@@MxxMxxMMMMxxMxznMMMn#+xW@xzxxxxxxxz#xzi+
i**iizxzzW@@#W@xnzxxnnznznxnnMWWWWWWWMMWWWMMMn,*MMM+:;nW@M,;*#WxMMz+nzi*
*i*ii+xznW@@WWWnzxnnxnxxMMxnnMMMMWWWWWMMMMMMMn.;xMM+,:zW@@:.,*MMWMn+xz**
+ii;i+nznWWWWWWMnnxnxxnxnznMWMxxMxMWW@WMMMMMMM::xMxn..+W@#*..iMWWMn#Mz**
+iiii*nnnW@##@@MnxMxnxMMxnnnznnxMMMMMMWWWMxxxx*:nxxx:,*MW#n..;xWWMx#Mz*i
*#*iii#nnW@@W@@@MxMMMMxMMMn#zzzzzzznxMWWWWMMxxz:zxxx*,iMM@@,`:nWWMxzMn**
i++iii+nnW@@@@@WMxxMWWMxnMMxxMMMz#zzxxxMMW@@WMxi#nnx#,;xMM@i`,zWWMMxMn**
;i#+***nnWWWW@@@xzxMWWWMMMxxMMMMxnnnxxznxMM@WWW#+##zn:;xxMMz.,#WWMMMMx**
iii#+**#nWWW@@@WMxnMWWWWWWWMMMMMWWMWWz#zznxxMW@WxMxzzi;nxxxn,.+WxMMMMxi+
i;i*#++i;ii*###zxnnxxWWMWWWWWWWWWMMMxnznnnzzznMWWWWz#n;##zzz;.+WnxMMMWiz
iiii*z+,::;i+zz#nxzznnxWMxWWW@WWWWWWMMMMx#i*+##nMWM*+W*MMn##+.*@nxWMWM*n
i+****,.:;i*+##nzxxnznnxWWWW@@W@@@@WMWWMnnnnznz##nnnn@xMW@zWW,*@MWMWWxxx
+*#+*..,;i*++iii;*xxxnxxMMMWW@WWW@@@@WMWWWMMMMxnnnnznWWWWx+M@**@@@WWnnnx
x+i#:.,;i+##;;;;:,#MMMxnxxzxxxxxMMMMxxxxxMMWWWMMxxxnnnxWW#+MWn*WWWW@xxMM
nn*:``;*#zn*,,i:,*MWMMxxz*nxnxxxxxxnnnnnxxxMWWMMMMMMMMMnnnxWWMzMWWWWMMMM
#z#```:*+++,.;*:innznnxxnxxnnnnnznnnnnxxxxMWWWWMWWMxnMxxxnznxMMMMMMxxxMW
*+*```*zzzz;;***######zzzzzz#zzznnnnnnxxxxxxxxxxxMWMxxxnxMxnnnMxxxnnxxWM
;;*i``+#znxz**++####+##+##zzz#zzzzzznzzzzznnnxxxxMMWWWWMxnxxnnxxnzzxxWMx
,:;*:.##znxx+++**+*****+++++#+++++++####znnnnxxxxxxxMMW@WMxxxxxxn#zxxMxx
.,:;+;###nxMz+++##++++#######+++++####zzzznnnxxnnnxMMMMxW@@WMMMxnnnnxxxx
.,,izznnxnznnn+****++########+++++++###zzznnnzznxxMWMxxMW@@@#@WMxxMMMMxM
..:+xW@@@xxxxxnz#+***i*ii*i*******+++++++##zznxxMWWxnxMW@@@@WW@@W@WMWWMW
..;#xW@Wn#++**+#znz++++++++#+++++++*++++#znxxxMMWMnnxW@@@@MxxxMWWMMxMWWM
.,inMWW+;:;::::;i*#nn##+++++####zzzz##zznnxxMMMMMxMWWWW@WxxxxxxWMxxxMMMM
.:+xWMi,....,,,,,:;i*zxxznzzz##########znnxxMMMMM@@MMMWMnnxnxMWxxnxxMMMM
,*nMW;...........,,,::;*znxMMMxxnnznzzzzznnxxMMWWW@WWWx#znnxxWMnnnxMMMMM
;zMW*.``............,,,::;;i*+znnxMMWWMMMMMMWWWWWWWWW@WMxnnnMxnzznxMxxMM
#xW#.```................,,,::;i**+#znxMMWW@WMWWMMMMMMxMMMMMMxz#znxMxnxMx
xWn,```..................,,,,,:;;i*+#znnxMWWWMMxMMWMxnnnnxWMnnnxxxnnxxxn
MM;.`.....................,,,,,::;ii*+#znxMW@WMMMWxnnnnxxMxnnnxxMWxxxnnx
W+.........................,,,,,,:;ii++#znxMW@M@WnzznnnxMxnnnnxxMMMMxxxW
M:............,...............,,,:;;i*+##znxMWWW@WnzzzxMxnnznxxMxxMMxzMx
+,,,,,,,.,,..,.................,,:::;i*+##znxW@MMMMxnzxxnzzzxxxxxxxn#nnM
;,,,,,,,,,:.........,.,,.......,,:::;i**+#zznMWMMMxnnxxnz#znxxxxxnzznMWW
::,::,,,,,,.........,,,,,,,,,..,,,,;;ii*+##zzxWWMxxxMxnxxxnnnxnnnzzW@@@W
::::::,,,,,,,..,,,,,,,,,,,,,,..,,,::i;i*++##zxMWMMMMMnzznxxxxxxxxnMW@@@@
;::::,,,,,,,,,,,,,,,,,,,:,,,,,,,:;;:;;;i+++#zxMMMxxMxzzznnxnxnnnznWWW@@W
::::,,,,,,,,,,,,:::::::::::,,,,,:;;;;;i**+##znxxxxMMxnzznnzxnzzznWWWW@WM
::,,,,,,,,,,::;:;;;;;;;;;::::::::;iiiii**+##znxxxMMMMnnnnzxnz#zxWWWWxWWW
;:,,,,,,,,,:::;iiiiiiiiii;;;;;;;;;ii****++##znnznMMMxxnnzxz##nxM@WWxM@WW
*:,,,,,,,:::;;;iii*********iiiiiii***+++++##znzzxMMxxnnznzzznxxW@@MxWWWM
z*:,..,,::;;;ii****+++++++++*****+####+#####z#+#MWxnnnnxxxnxxxMW@WxWWWxM
x#i,,,,,::;iii****+++####+++++++###z#########++zWMMMMxnnnzzMxMMMMMWWWMWM
Mn+;,,,,:;;ii****++###########zzzzzzzzz##+*+**+xMMxxnnxnzzxMMMMMMWWMMWWM
MMx+;::::;ii****++###zzzzzzzzznnnnnnznz+***+i*nMxxnnnxnnnxMMMMMWWWWxWWMn
MMMz#*i;iii***+++###zzzznnnnnnnxnnnnzz#+**++*zxxnnnnxnxnxMMMMMMWWMxMMWxn
*MMxxz#++****+++#zzznnnnnxxxMMxxxxxnnz###+++nMxxxxxMxxMMMMMMMMxWMMMMMMxn
**MMMnnnzz###z##zzznnnnxxxMMxxMxxMnnnzzz##zxMMMMxxMMxMMxxMMMMMnWMWWxMMnn
z+ixWMxnxnnnnxnnnnnnnnnnxxxxxxxxMxnxxnnzznxMMMxxxxxxxxxxWWMMMnxWWWxxMnnz
###;+MMxxxxnnxxxnxxnnnxnnnnnnxxxMMMMMxxxxxMMMMxxnxxxxxxMMMMMxMMWMMnxnnx#
*+##+i#xMxxxxxxxnnnnnnnnnxnnnxxMWWWWWMMMxxxxxxxxxMxxxMMMMxxxMMMMxnMxnnn#
:i*+##*i*#nxMMMMMMMxxxxxMxMMMMWWWW@@WWWMMMMMMMMMMMxxxxxMMMMMMMxMnnMxnMzz
,:;i++###+**#znMMMWWWWMMMMMMWMWWWWWWWMWWMMWMMMMMMMxxxxnxWWMMMxxxMxMxnxzz
.,,:;i**+###zzzzzzznnnnnxxxxxxxxxxxxMWMWMMMMMxxxMxxxxxxMMMMxxnMMMnMnznnn
...,:;;ii*+++#zznnnnnxnnnnnnnxxxxxxnxMWMMMMMxxxxMMMMMMMMMMxxxMWMxxxzzzxM
...,:,:::;ii**+++++##zzzznzznnnnnnnnnxMMxMxMxMMMMMMMMMxMMxxMMxWMnxnznzMW
...,,,,,:::;;ii*****+##+##zzzzzznzzznnxMMWWMMxxxMMMMxxxxxxMMxxMxzxnzznWM
....,,,,,:::;;iiii****+++###zzzzzzzznnnxMMMMxxxxMMMxxxxMxMMxxxMxnMMnzxMM
...:,,,,,,::;iiii***+++++#####zzzzzznnnnxMxnnnnxMxnnnxMMxxxxnnxxxMxnnMMM
...,,,,,:::;;;iii****+++++#########znnnnxxxnzznxxxnxMxxMxxxnnMMMxxnzxMMM
..,,,,,:,,:;i;iii*****++++++++######zzznznxxnnnnxMxxnnnxxnnxMMMxxxznxMMM
,,,,,,,:,:::;;;iii*****++++++++++####zzzznnnxxxxxMnnnnnnxMMxxxMxnnMnnxMM
,:,,,,,,:::;;iiiii*******+++++++++###zzzzznnxMxnnxnnnnzznMxxxxxnnnxnnMMM
::,::::::::;;;ii*ii********++++++####zzzzzznnxn#nxxnnnxxnxxxxnxMxnxznxMM
:;::::::;;;;;;i**iii******++++++######zzzzzzznnnznnxxMnnnxMxnxnxzznnxnMM
::::::::;;;;iiiiiii*i***++++++#++######zzzzzzzznnnxMxxnnzzMxxxznnMxnznMM
:;::::;;;;;;;;i*ii***+*+++***++++#####zzzzzzzzzzxMxxxnnzzxMxxnzxMxxnnnxM
;;:::::;;;;;iiii******++#++++++++#####zzzzzzzzz##xxxxnznMxxxxznxxnznnzxM
;;:;::;;iiiiiii**++++++++#########zz##zzzzzzzzz###nnnxMMxxxxnnMxnnzxn#nM
;;;;;;;iiiiiii*+++++++######zzzzzznzzzznzzzzznzz#+znnxMxnnnnxMxnznnz#nnM
;ii;;;;iiii****++######zzzzzzzzzzzznzzzzzzzzzzz###+xxxxxxxnxxxnzMxn+nz#x
iiiiiiiiii****++###zz##zzzzzzzznzznnnnznnzzzzzzz#z+#xxxxnnxxxxzxxxzzzz#x
****i********++##zzzzzzznnnzznnnnnnnnnnnnnnnzzzzzz+*nnnxxxxnnnxxn#nz##+n
*+****+*++++++##zzznzzzznnnnnnnnnnxnnnnnnnnnnnzzzz###nzxxxxz#nxnzzn#z#+z
++*+++++++######znzznnnzznnnnnnxnxxnnnnnnnnnnnnzzz###nnxxxnzxnnnznzz#+#z
#+++++++###zzzzznnnnnnnzzznnnnnnnxxnnnnnnnnnnnnzznnz+zxnxnnxxnznxz#z+*+#
########zzzzzzzznnnnnnxnnnnnnnnnnnxxxxnnnnnnnnnnzzzn#+nnzxxxnznxnz#z+++#
zzz###zzzzzzzznnnnnnnnxxxnnnnnnnxnxxxxnnnnnnnnnnznnz#+nznxxxnnnnz#z##*+z
zzzz#zzzznnnnnnnnnnnxxxxxxxnnnnxxxxxxxnnnxxnnnnnnnnz#znxxnxnxxzzzz+##*+#
zzzzzznnnnnnnnnnxnnxxxxxxxxnxxxxxxxxnxnnxnnnxxnnnnnnz+zxxznxxnznnz+z#**#
nnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxnxnxxxxnxnxnnnnxz##xnzxxnnnnz#z##+*#
nnnnnnnnnnnnnnnnnnnxxxxxnxxxxxxxxnnxxxnxxnxnnxnnnnxnz#+nznnxnzxzn#z++*+n
nnnnnnnnnnnnnnnnnnnnxxnxxxxxxxxxnnnnnnxxxnnnnxxnnnnnz#+nxnznnxz#zz###*#x
nnnnnnnnnnnnnnnnnnnnnnnnxxxxxnxxnxxnnnxnnnnnxxnnnnnnz#+xnz#nxnz#n##z++#x
nnnnnnnnnnnnnnnnnnnnnnnnnnnnxnnxnnnnnxnnxxnnnnnxnnnnn#+nnzzxxnznz#z##+#x
nnxnnxxnnnnnnnnnnnnnnnnnnnnxnnnnnnnnnnnnnnnnnnnnnnnnnz+nzzzxxznzzz#+#*zx
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxnnnnnz#zznznnnz#xz++++zx
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxnnnnnnnnnz#nxxznnn#zn#++++zx
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxnnnnzxnnnznz#nz+#+#+nx
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxnnnnxnnnnz##n##+#++nx
nnnnnnnnnzznnnnnnznnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxnnnnznn#z#n##zz*+xx
zzzzzzznzzzzznnnzzzzznnnnnnnnnnnnnnxnxnnxxxxxxxMMxxxxnnz#znnz#zxz#zz*#xx