RT
#include<bits/stdc++.h>
using namespace std;
int n,m;
bool mm[501][501],f=false;
int bx,by,ex,ey;
int dx[]={-1,1,0,0},dy[]={0,0,1,-1};
char t;
void dfs(int x,int y){
if(x==ex&&y==ey){
f=true;
return;
}
for(int i=0;i<4;i++){
int xx=x+dx[i];
int yy=y+dy[i];
if(mm[xx][yy]==true&&xx>=1&&xx<=n&&yy>=1&&yy<=m){
mm[xx][yy]=false;
dfs(xx,yy);
mm[xx][yy]=true;
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>t;
if(t=='s'){
bx=i;
by=j;
mm[i][j]=true;
}
else if(t=='g'){
ex=i;
ey=j;
mm[i][j]=true;
}
else if(t=='#') {
mm[i][j]=false;
}
else{
mm[i][j]=true;
}
}
}
dfs(bx,by);
if(f==false) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
return 0;
}