#include <stdio.h>
int n,m,t,ok;
char a[11][11];
void dd(int t,int x,int y)
{
if((t==0)&&(a[x][y]=='D'))
ok=1;
if(t==0)
return;
if(ok==1)
return;
if((a[x-1][y]=='.')||((a[x-1][y]=='D')&&(t==1)))
{
a[x][y]='X';
dd(t-1,x-1,y);
a[x][y]='.';
}
if((a[x+1][y]=='.')||((a[x+1][y]=='D')&&(t==1)))
{
a[x][y]='X';
dd(t-1,x+1,y);
a[x][y]='.';
}
if((a[x][y-1]=='.')||((a[x][y-1]=='D')&&(t==1)))
{
a[x][y]='X';
dd(t-1,x,y-1);
a[x][y]='.';
}
if((a[x][y+1]=='.')||((a[x][y+1]=='D')&&(t==1)))
{
a[x][y]='X';
dd(t-1,x,y+1);
a[x][y]='.';
}
}
int run()
{
int i,j,x,y;
char s[10];
for(i=0;i<=n+1;i++)
for(j=0;j<=m+1;j++)
a[i][j]='X';
for(i=1;i<=n;i++)
{
scanf("%s",s);
for(j=1;j<=m;j++)
{
a[i][j]=s[j-1];
if(a[i][j]=='S')
{
x=i;
y=j;
}
}
}
ok=0;
dd(t,x,y);
if(ok==1)
printf("YES\n");
else
printf("NO\n");
}
int main()
{
scanf("%d%d%d",&n,&m,&t);
while(n!=0)
{
run();
scanf("%d%d%d",&n,&m,&t);
}
return 0;
}
/**************************************************************
Problem: 2228
User: admin
Language: C++
Result: Accepted
Time:9 ms
Memory:1144 kb
****************************************************************/