#include <iostream>
using namespace std;
const int N = 510;
int n, m;
bool st[N][N];
char g[N][N];
int dx[] = { -1,0,1,0 }, dy[] = { 0,1,0,-1 };
int xa, ya, xb, yb;
bool dfs(int x, int y)
{
if (x == xb && y == yb) return true;
if (g[x][y] == '#') return false;
st[x][y] = true;
for (int i = 0; i < 4; i++)
{
int a = x + dx[i], b = y + dy[i];
if (a < 0 || a >= n || b < 0 || b >= n)
continue;
if (st[a][b]) continue;
if (dfs(a, b)) return true;
}
return false;
}
int main()
{
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')
{
xa = i;
ya = j;
}
if (g[i][j] == 'g')
{
xb = i;
ya = j;
}
}
if (dfs(xa, ya)) cout << "Yes";
else cout << "No" ;
return 0;
}