#include <bits/stdc++.h>

using namespace std;

int n,m,f=0;

char s[20][20];//定义数组

int vis[100][100];//标记数组

int qx,qy,zx,zy,x,y,z;

int dir[4][2]{{-1,0},{1,0},{0,-1},{0,1}};//方向数组

void dfs(int x,int y,int st){

if(s[x][y]=='D'){

if(st<=z){

f=1;

return;

}

}

if(f) return;

for(int i=0;i<4;i++){

int tx=dir[i][0]+x;

int ty=dir[i][1]+y;

if(tx >= 1 && tx <= n && ty >= 1 && ty <= m &&!vis[tx][ty]&& (s[tx][ty]=='.'||s[tx][ty]=='D')){//判断能不能走

vis[tx][ty]=1;

dfs(tx,ty,st+1);

vis[tx][ty]=0;//回溯

}

}

return;

}

int main(){

cin>>n>>m>>z;

for(int i=1;i<=n;i++){

for(int j=1;j<=m;j++){

cin>>s[i][j];

}

}

for(int i=1;i<=n;i++){

for(int j=1;j<=m;j++){

if(s[i][j]=='S'){

dfs(i,j,0);

}

}

}

if(f==1) cout<<"YES";

else cout<<"NO";

return 0;

}