#include<stdio.h>
#include<string.h>
int id,jd,k,t,m,n,f[8]={0,0,1,-1,1,-1,0,0};
char s[8][8];
void dfs(int i,int j,int c)
{
    int p,ii,jj;
    if(i==id&&j==jd)                  
    {
       if(c==k)
         t=1;
       return;
    }
    for(p=0;p<4;p++)
    {
     ii=i+f[p];
     jj=j+f[p+4];
     if(ii>=0&&ii<m&&jj>=0&&jj<n&&s[ii][jj]!='X')
     {
         s[ii][jj]='X';
         dfs(ii,jj,c+1);
         s[ii][jj]='.';
         if(t)return;
     }
 }
    return;
}           
int main()
{
 int i,j,q,is,js;
 while(scanf("%d%d%d",&m,&n,&k),m||n||k)
 {
     q=0;t=0;
     for(i=0;i<m;i++)
     {
         scanf("%s",s[i]);
         for(j=0;j<n;j++)
         {
             if(s[i][j]=='S')
             {is=i;js=j;s[i][j]='X';t++;}
             else if(s[i][j]=='D')
             {id=i;jd=j;q=1;}
             else if(s[i][j]=='X')
                 t++;
         }
     }
     if((is+js+id+jd+k)&1||t+k>n*m)
         q=0;
     t=0;
     if(q)dfs(is,js,0);
     if(t)printf("YES\n");
     else printf("NO\n");
    }
 return 0;
}