#include<iostream>
#include<cstring>
using namespace std;
string e[30];
int book[30][30];
int n,m,t,ex,ey,sx,sy,flag;
int dx[]={0,1,0,-1},dy[]={-1,0,1,0};
void dfs(int x,int y,int s)
{
if(flag) return ;
if(e[x][y]=='D'&&s==t)
{
flag=1;
return ;
}
for(int i=0;i<4;i++)
{
int xx=x+dx[i],yy=y+dy[i];
if(xx<0||xx>=n||yy<0||yy>=m) continue;
if(book[xx][yy]==0&&e[xx][yy]!='X')
{
book[xx][yy]=1;
dfs(xx,yy,s+1);
if(flag) return ;
book[xx][yy]=0;
}
}
}
int main()
{
while(cin>>n>>m>>t)
{
if(n==0&&m==0&&t==0) break;
memset(book,0,sizeof book);
for(int i=0;i<n;i++)
{
cin>>e[i];
for(int j=0;j<m;j++)
{
if(e[i][j]=='S') sx=i,sy=j;
if(e[i][j]=='D') ex=i,ey=j;
}
}
int ans=t-abs(ex-sx)-abs(ey-sy);
if(ans<0||ans&1)
{
cout<<"NO"<<endl;
continue;
}
else
{
book[sx][sy]=1;
flag=0;
dfs(sx,sy,0);
if(flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
return 0;
}