MMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@
xxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@@@
xxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWMMMWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWMMMMWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMxMMMMMMMMMMMMMMWWWWWWMMMWWMMWWWWWWWWWWWWWW@@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMxxMMMMMMMMMMMMWWMWWWMMWWWWWWWWWWWWWWWWWWWWWW@@@WWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMxxnxMMMMMMMMMMMMMWMWMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMxxxMMMxnnxMMMxMMMMMMMMMMMxMMWMWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxxMMMMMMMMMxxxxxxxnxxxMMxxMMMMMMMMMMxxMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxxxMMMMMMxxxxxnnnnnnxxnnxMMxMMxMMMnxMMMMMMWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxxMMMMMMxxxnnnnzznz#znxxMMMxxxMxnxMMMMMMMMWWWWWWWMMWWWWWWWWWWWWWWWWWWWW@WWWWW@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxxMMMMMMMxnznnnzzzznnnnxMxnxMMnnMMMMMMMMMMMWWWWWWWWWMMMMMWWWWWWWWWWWWWWW@W@@WWWW@@@@@@WWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxMMMMMMWMnzznnzznxxMMxxnnnnxxxMMMMMMMMMMMMMMMMMMWWWMn+z#+nMWnWWWWWWWWWWWW@@@@@@@WWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxxxMMMMWMnzznnnnnxxxMMMxxxnnnnxxxxxxMMMMMMMMMMMMn#zn#+i;::;#n#nWWWWWWMnMWW@W@@@@@@WWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxMxMMMMWMnznnnnnxxxxnnnznnnzzz#+++++##+znxxMMMx+*i;*z*i;::;i#zzMWWWWMz#+nWWWW@@WWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxMMMMMWMxzzzznxxnnzznnxxnn#;,:ii*i;;i::;*i#znnz**#+i#i;i*;;i*++MWWWMn#zn+nizWWMWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxMMMMMMWMnzznnxxnnxxxxxMxnn*:,.;+*ii;;:,,:,;zi;*++*z*i*i*nni;;:*MWWn#####+#*###+nnW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxMMMMMMWxnzznnxxxnxxMxxnnx+;;,,*i:;i;:::,:,:i::::;+#+*ii#Mn;;+nxMzW+i++*#znnz*:i*##znMWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxMMMMMMWWxnnnnnxxnnnxxnxxMn#;i:i*i:,;;;:::,::;i;;;;;i#*;inMMxz+z+++xMz#z++zMz+z++*+*;;+MWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxMxMMMMMMWMnzzzznnxnzznxxMMxn#:;ii*;,,;;*i;i;i;i;;;;:::;*##x**+x*zii;z###+n#zn#*#x#z##ii##zM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxMMMMMMMMMnnnzzzzzzznn#xMMMn*::;ii,,:i**;ii*iii;;:::::;i*#x*zn*i;i;+i*#xzWx+++xMWMnnnz++i**W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxMMMMMMWMnnz#####znxnzzMMMxxi::*;:::;:iiii;;;i;:::::;i+z*++*i:;::;:ii#nMWWWznWWWWWWWWWn#nzz@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxMMMMMMMMWWnz####z##zxxx+zMxMMx++;::::::;;ii;;;;;;:;;:i*+*i;i*;:;::;i*i#MWWWWWWWWWWWWWWWWMx+*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxMMMMMMMMWMn####zz###xxxz*#xxz+*i;:::;;;+i**;i;:;:::;;+*+*;:::*i;:;iii;*+MWWWWWWWWWWWWWWWMM#*W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxMMMMMMMMMWMn#######+++n+;;*##+i;::,,:::;+**ii;;;;i*++#i:i+*;:;i#+;:;:;;::z#nWWWWWWWWWWW@WMxnz@@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxMMMMMMMMMMWn#z#++#+##ii:;*;:;;;;;,,::,;i*nx#zzzz#+***i*+++*::;i*#i;;*;:::i;:#WWWWWWWWWWWM#z#zW@WM@@@M+++#M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxMMMMMMMMMMxMWnz#++++##*i;ii:,,:::::,,,,,i#znz#**++;:i+i::::i**i;iz+#*;;+i;;;::*n+xWWWWWWWWx::;#xMzzW@@#+i;*#x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMxMMxz#++###+*ii:,,,,,,:::,:;*++++++*i+#+;:;*i:,,,,,,:;*+n+z#i*iii;:::;:*WWx#z#MWW+:;,i##zMWMz*+znn+x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMMMMx#####+***ii;,...,,::;**:...:;ii;;++ii:iii;:,,,::;i*+zn##z#+***;i;;;;nx*;i**+WM+;;,:*nxMxnzMWWM#zMW@@@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMMxMxz##+++***ii;,...,,:ii:,,,,.i##zz#z+i;:;;:::,,,:iiiii+xxz*#nnzz+i;:::;*ii*#*i+zzi:i,;*x#++WWWWW#*znnM@@@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxMxMMMMMMMMMMxMMn#+++***ii;;:,..:i;,,,,,,,:+++zz+*i*i;;:,:::::;i+#*i*+zn++nxMMz+i;:;i+++zzi*i+*ii#;:,ii+W@@@WMz+*###MW@@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMMxMMWz+*****iii;:,;*i,.,,,,::,;++##i::;*;::::;;::;,,+*iiiii*++xMWMnz*;:::innMz;i*zz#+zMzznWMWWWWWW*i*+nzzzW@@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMMxMMWx+*+***iii;i*;,,.,:,,;+*:;;**i;:;;i+:;:::+;i,.:x+*;;iii*+#xMMzz#*:::,;nWMnzzxx++*;*nzWWW@@@@@+ii+xnz*+M@@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMMMxMMM#***+iii;i*;::,,,.,;#zzi::i;;;i;;;xxxzznMni,.ixii;;;;;i++##z#i**;::,.iMMz#nWMzi;;;;;#@@@@@@@WxnMWWWn++M@@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMMMxxMMx****ii;;iiii;:;,,,+***i;;ii;i**i+xxxxxxxxx;,:MnMx#*+***#+**+;i;;i;:,;#M*;*MWW#+#+*++WxW@@@@@@@@@WWW#i#WW@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMMMMxMMMz**iiiii**+ii;i;i**;;i***+++*###nnnxxxxxMMx*#MMMMMnMz*******i;;i*+*,,i*;;;iM+*xxx+*i**x@@@@@@@@@@WWx+*M@W@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMMMMMMMMn+****+++++****+*i;i*++;:;;;+xnnxMMMxxMMMMMMxMMMMMMMM#iiii*i;;ii;;ii::,i*i;**#+nWMzii+zW@@@@@@@@@@WWn*+@@@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxMMMMMMMMMMMMxMMxz+**+++++###z#+**+++##*i;#zxMMMMMxMMMMMMMMMMMMMMMMMMx+*+;;;ii+i:,:,i;,:;ii*#ii+WWM##++*M@@@@@@@@@@WM#ix@@@W@@@@@@@@@@@@@@
xxxxxxxxxxxxxMxMMMMMMMMMMMxMMMz**+++####zz######zz+++#zznnxxxxMMMMMMMMMMMMMMMMMMMMMxz;:::*i*;::.,;i;i;;;++i+nWWxM#*#n@@@MWzM@@@WWx*+@@@@W@@@@@@@@@@@@@
xxxxxxxxxxxxMMMMMMMMMMMMMMxxMMM#+++###zz##zz#zzzzz##zzznnxxxxxxxMMMMMMMMMMMMMMMMMMMMM*;::;**ii:,,,;#*i;;;*zn;+nW@n+#zWz+i+;i+W@@WMz#W@@@@W@@@@@@@@@@@@
xxxxxxxxxxxxxxxMMMMMMMMMMMMxMMMxz####zz##zzzzznnzzzzznnMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMnn#;,,i#zi;iz*n*i;:+xn*++nxWn+###+i*;;;nxWWWz*M@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxMMMMMMMMMMMMMxxMMMz##zzz#zzz#zzz#znzznnnMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMn*+nMWxMWWMz**;;+z+#*i**zM+;*nMMzi**#nz#z+*M@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxMMMMMMMMMMMMMMxMMWMnzzzzznz##z###znzznnxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWM#**i;;*i*+z*znn*:iMMWx##MWzii*i+W@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxMMMMMMMMMMMMMxxMMMxnzznzz##zz###nzznnxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWW#**i;ii;;+z*+##;:;##x@WMWWz++;;+W@@@@@@@@@@@@@@@@@
xxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMxMMMMxnz###zzz#zzzzxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWM+*;;i*+i#**inxi::*n@@@Wnn##i;:+@@@@@@@@@@@@@@W@@@
xxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMxMMMMMxzzzzzzzzzzMMxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWMWWn;;+#+#n+#+nxnii;#M@Mx##+*i;;*MW@@@@@@@@@@@W@@@@
xxxxxxxxxxxxxxxxxxxMxMMMMMMMMMMMMMMMWWMMxnzznnnxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMWWWWWWWWWWMWW#;;i+*####zn##*iiinz#*+*ii;;i;*+znnM@@@@@@W@@@@
xxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMxMWWWMMxMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWWWWWWWWWWMWM*;i++#i**zz++**ii++*****i*i;:;**++#M@@@@@W@@@@
xxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMxMMMMWMxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWMWWWWWWWWMWMM+#+*#;;;+;i*##+*ii+*#+*iiii*###++zW@@@W@@@@@
xxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWMWWWWWWWMWWMWM**:::*;;;++****+++*iii;;*+#n#+#xW@@@@@@@@
nnxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWxi*#+*in+*:;;::;;:;;i::i**#z##zxMM@W@@@@
nnnxxxxxxxxxxxxxxxxxxxxxxxMxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWxWWMMnxz+*##ii*;;;ii;;n#*##zz#znz#xW@@@
nnnnnxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWxMWWW@@WMWWWMWWz+nMMMMWWMx#*ii#z#+*zMMx
nnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@WWWWWWW@@@@@Wn++nM#i;*#**
nnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@W@Wn+;ii+*
nnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@xnxMW
nnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
nnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
nnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@
nnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWWWW@@@@@@@@@@@@@@@@@@@@@@@@
nnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@WWW@@@@@@@@@@@@@@@@@@@@@
nnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@WWW@@@@@@@@@@@@@@@@@@
nnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@WWW@@@@@@@@@@@@@@@
nnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@WWW@@@@@@@@@@@@
nnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@WW@@@@@@@@@@
zzznnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@WW@@@@@@@
zzzznnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@W@@@@
zzzzznnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@W@
zzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@
zzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@
zzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@@@@@@@@@@@@@@@@@
zzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnxnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@
zzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@
zzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnxnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMxMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@
zzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@
zzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnxnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@
zzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@
zzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@
zzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@
zzzzzzzzzzzzzzzzzzzzzzzznznnnnnnnnnnnnnnnnnnnnnnnnnnxnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMWWMWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@
zzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@
#zzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@@@@@@@@@
##zzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnxnxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@
##zzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxMxMMMMMMMMMMMMMMMMMMMMMMWMMWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@
####zzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@
#####zzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@