#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
****************************************************************/