#include <bits/stdc++.h>
using namespace std;
int d[4][2] = {{0,1},{1,0},{0,-1},{-1,0}},flag;
char a[105][105],n,m;
void dfs(int x,int y) {
if (x == n && y == m) {
cout << "Yes";
exit(0);
}
for (int i = 0;i < 4;i++) {
int nx = x + d[i][0],ny = y + d[i][1];
if (nx >= 1 && nx <= n && ny >= 1 && ny <= m && a[nx][ny] == '.') {
a[nx][ny] = '#';
dfs(nx,ny);
}
}
}
int main(){
cin >> n >> m;
memset(a,'#',sizeof(a));
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= m;j++) {
cin >> a[i][j];
}
}
dfs(1,1);
if (!flag) cout << "No";
else cout << "Yes";
return 0;
}