include<bits/stdc++.h>
include
include<math.h>
define ll long long
using namespace std;
int n, m;
char p[505][505];
bool judge[505][505];
int dx[4] = {-1,0,1,0};
int dy[4] = {0,1,0,-1};//方向
bool flag;
bool check(int a,int b){
if(a < 1||a > n)return 0;
if(b < 1||b > m)return 0;
return 1;
}
void dfs(int x,int y){
if(p[x][y] == 'E'){
flag = 1;
return ;
}
for(int i = 0;i < 4;i++){
int tx = x + dx[i];
int ty = y + dy[i];
if(check(tx,ty)&&!judge[tx][ty]&&p[tx][ty]!='#'){//判断是否超过地图界限以及是否走过;
judge[tx][ty] = 1;
dfs(tx,ty);
}
}
}
int main(){
while(cin>>n>>m){
int x1, y1;
flag = 0;
memset(judge,0,sizeof(judge));
for(int i = 1;i<= n;i++){
for(int j = 1;j <= m;j++){
cin>>p[i][j];
if(p[i][j] == 'S'){//记录起始点
x1 = i;
y1 = j;
}
}
}
judge[x1][y1] = 1;//标记起点已经走过
dfs(x1,y1);
if(flag == 1)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;}



京公网安备 11010502036488号