#include <iostream>
using namespace std;
char a[110][110];int vis[110][110];
int n,m;
int dx[] = {1,0,-1,0};
int dy[] = {0,-1,0,1};
void dfs(int x,int y){
if(x>=n&&y>=m){
return ;
}
for(int i = 0;i<4;i++){
int xx = x+dx[i],yy = y+dy[i];
if(a[xx][yy]=='.'&&!vis[xx][yy]){
vis[xx][yy] = 1;
dfs(xx,yy);
}
}
// return 0;
}
int main() {
cin>>n>>m;
for(int i = 1;i<=n;i++){
for(int j = 1;j<=m;j++){
cin>>a[i][j];
}
}
dfs(1,1);
if(n==1&&m==1&&a[n][m]=='.'||vis[n][m]){
cout<<"Yes\n";
return 0;
}
else{
cout<<"No\n";
return 0;
}
return 0;
}
// 64 位输出请用 printf("%lld")