#include<bits/stdc++.h>
using namespace std;
int n,m;
char mp[105][105];
int a[4]={0,0,-1,1};
int b[4]={1,-1,0,0};
bool bo=0;
bool judge(int x,int y){
if(x<0||x>=n||y<0||y>=m||mp[x][y]=='#')return 0;
return 1;
}
void dfs(int x,int y){
if(x==n-1&&y==m-1){
bo=1;
return;
}
for(int i=0;i<4;i++){
int xx=x+a[i];
int yy=y+b[i];
if(!judge(xx,yy))continue;
mp[x][y]='#';
dfs(xx,yy);
mp[x][y]='.';
}
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
scanf("%s",mp[i]);
}
dfs(0,0);
if(bo)cout<<"Yes";
else cout<<"No";
return 0;
}