#include<bits/stdc++.h>
using namespace std;
int dx[5]={0,0,1,-1};
int dy[5]={1,-1,0,0};
int has[502][502];
char a[502][502];
int x,y;
void dfs(int nowx,int nowy)
{
if(a[nowx][nowy]=='g')
{
exit(0);
cout<<"Yes"<<endl;
}
if(a[nowx][nowy]=='#') return;
has[nowx][nowy]=1;
for(int i=0;i<=3;i++)
{
nowx+=dx[i];
nowy+=dy[i];
if(has[nowx][nowy]==0&&nowx<=x-1&&nowy<=y-1&&nowx>=0&&nowy>=0)
{
dfs(nowx,nowy);
}
//has[nowx][nowy]=0;
//nowx-=dx[i];
//nowy-=dy[i];
}
}
int main()
{
cin>>x>>y;
int bx;
int by;
for(int i=0;i<=x-1;i++)
{
for(int j=0;j<=y-1;j++)
{
cin>>a[i][j];
if(a[x][y]=='s')
{
bx=i;
by=j;
}
}
}
dfs(bx,by);
printf("%s\n","No");
return 0;
}