#include"bits/stdc++.h"
using namespace std;
bool a[502][502];
bool ans=false;
int xa,ya;
int dx[]={-1,1,0,0};
int dy[]={0,0,-1,1};
void dfs(int x,int y)
{
a[x][y]=false;
if ((x==xa)&&(y==ya))
{
ans=true;
return;
}
for (int i=1;i<=4;i++)
{
if (((x+dx[i])>0)&&((y+dy[i])>0))
{
if (a[(x+dx[i])][(y+dy[i])])
{
dfs((x+dx[i]),(y+dy[i]));
}
}
}
}
int main()
{
int startx,starty;
int m,n;
scanf("%d%d",&m,&n);
char l;
for (int x=1;x<=(m+1);x++)
{
for (int y=1;y<=(n+1);y++)
{
a[x][y]=false;
}
}
for (int i=1;i<=m;i++)
{
for (int o=1;o<=n;o++)
{
scanf("%c",&l);
if (l=='s')
{
startx=i;
starty=o;
a[i][o]=true;
}
if (l=='g')
{
xa=i;
ya=o;
a[i][o]=true;
}
if (l=='.')
{
a[i][o]=true;
}
}
}
dfs(startx,starty);
if (ans)
{
printf("Yes");
}
if (!ans)
{
printf("No");
}
return 0;
}