#include <bits/stdc++.h>
using namespace std;
int n,ans,m,sx,sy,tx,ty,flag;
const int N = 110;
char g[N][N];
int vis[N][N];
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};
void dfs(int x,int y){
vis[x][y] = 1;
if(x == tx && y == ty){
flag = 1;
return;
}
for(int i=0;i<4;i++){
int nx=x+dx[i],ny=y+dy[i];
if(nx<0||nx>=n||ny<0||ny>=m||vis[nx][ny]||g[nx][ny]=='#')continue;
dfs(nx,ny);
}
}
int main()
{
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>g[i][j];
if(g[i][j] == 's') sx = i,sy = j;
if(g[i][j] == 'g') tx = i,ty = j;
}
}
dfs(sx,sy);
if(flag) cout << "Yes" << endl;
else cout << "No" << endl;
return 0;
}