#include<stdio.h>
#include<string.h>
struct {
int a;
int b;
}aa[2000*2000];
int mx,my,n,m,k=1,i,j,f[2005][2005],x0,y0;
char c[2005][2005];
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};
int bfs(int x,int y)
{
int tail=1,head=1,px,py;
if(x==mx &&y==my){printf("YES");return 0;}
aa[head].a=x;
aa[head].b=y;
f[x][y]=1;
while(head<=tail)
{
x=aa[head].a;
y=aa[head].b;
for(i=0;i<4;i++){
px=x+dx[i];
py=y+dy[i];
if(px>=0 &&py>=0 &&px<n &&py<n &&(c[px][py]=='.'||c[px][py]=='e') &&f[px][py]==0)
{ tail++;
aa[tail].a=px;
aa[tail].b=py;
f[px][py]=1;
if(px==mx &&py==my){printf("YES");return 0;}
}
}
head++;
}
printf("NO");
return 0;
}
int main(){
memset(c,0,sizeof(c));
memset(f,0,sizeof(f));
char t='0';
int k=0;
scanf("%d\n%d\n",&m,&n);
for(i=0;i<n;i++)
for(j=0;j<n;)
{ scanf("%c",&t);
if(t=='s' ||t=='.' ||t=='e'||t=='#')c[i][j++]=t;
}
x0=0;
y0=0;
mx=n-1;
my=n-1;
bfs(x0,y0);
return 0;
}
#include<string.h>
struct {
int a;
int b;
}aa[2000*2000];
int mx,my,n,m,k=1,i,j,f[2005][2005],x0,y0;
char c[2005][2005];
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};
int bfs(int x,int y)
{
int tail=1,head=1,px,py;
if(x==mx &&y==my){printf("YES");return 0;}
aa[head].a=x;
aa[head].b=y;
f[x][y]=1;
while(head<=tail)
{
x=aa[head].a;
y=aa[head].b;
for(i=0;i<4;i++){
px=x+dx[i];
py=y+dy[i];
if(px>=0 &&py>=0 &&px<n &&py<n &&(c[px][py]=='.'||c[px][py]=='e') &&f[px][py]==0)
{ tail++;
aa[tail].a=px;
aa[tail].b=py;
f[px][py]=1;
if(px==mx &&py==my){printf("YES");return 0;}
}
}
head++;
}
printf("NO");
return 0;
}
int main(){
memset(c,0,sizeof(c));
memset(f,0,sizeof(f));
char t='0';
int k=0;
scanf("%d\n%d\n",&m,&n);
for(i=0;i<n;i++)
for(j=0;j<n;)
{ scanf("%c",&t);
if(t=='s' ||t=='.' ||t=='e'||t=='#')c[i][j++]=t;
}
x0=0;
y0=0;
mx=n-1;
my=n-1;
bfs(x0,y0);
return 0;
}