#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int dx[4] = {0,1,0,-1},dy[4] = {1,0,-1,0};
int n,m;
int sx,sy,ex,ey;
int vis[105][105];
char mp[105][105];
int res;
inline bool check(int x,int y)
{
if(mp[x][y] == '#') return false;
if(x < 0 || x >= n || y < 0 || y >= m) return false;
if(vis[x][y]) return false;
return true;
}
inline void dfs(int x,int y,int step)
{
vis[x][y] = 1;
if(x == ex && y == ey)
{
res = min(res,step);
return;
}
for(int i = 0;i < 4;i++)
{
int fx = x + dx[i];
int fy = y + dy[i];
if(check(fx,fy))
{
dfs(fx, fy,step + 1);
vis[fx][fy] = 0;
}
}
return;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
res = 1e5;
memset(vis,0,sizeof vis);
for(int i = 0;i < n;i++)
{
cin>>mp[i];
}
sx = 0,sy = 0,ex = n - 1,ey = m - 1;
dfs(sx,sy,0);
if(res == 1e5) cout<<"No";
else cout<<"Yes";
return 0;
}