#include<bits/stdc++.h>
using namespace std;
typedef long long int lint;
char a[102][102];
bool mk[102][102];
bool flag;
int n,m;
void dfs(int x,int y){
if(x==m&&y==n){
flag=true;
return;
}//递归基
int dx[]={0,-1,0,1};
int dy[]={-1,0,1,0};
for(int i=0;i<4;i++){
int tx=x+dx[i];
int ty=y+dy[i];
if(tx<1||tx>m||ty<1||ty>n){
continue;
}
if(a[tx][ty]!='#'&&mk[tx][ty]==false){
mk[x][y]=true;
dfs(tx,ty);
mk[x][y]=true;
}
}
}
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(flag) cout<<"Yes";
else cout<<"No";
return 0;
}