#include <bits/stdc++.h>
using namespace std;
int m,n,sx,sy;
char g[505][505];
bool vis[505][505];
int dirx[5]={1,0,-1,0};
int diry[5]={0,1,0,-1};
bool dfs(int x,int y)
{
if (g[x][y]=='g') {return 1;}
vis[x][y]=1;
for (int i=0;i<4;i++)
{
int tx=x+dirx[i];
int ty=y+diry[i];
if (tx>=1&&tx<=m&&ty>=1&&ty<=n&&!vis[tx][ty]&&g[tx][ty]!='#')
if (dfs(tx,ty)) return 1;
}
return 0;
}
int main()
{
cin>>n>>m;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
{
cin>>g[i][j];
if (g[i][j]=='s')
{
sx=i;
sy=j;
}
}
if (dfs(sx,sy)) cout<<"Yes";
else cout<<"No";
return 0;
}