#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")