#include <iostream>
#include <cstring>
using namespace std;
long long ans;
int n,m;
int ma[100][100],dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
char ch;
int x,y;
bool found=false,vis[100][100];
void bfs();
int main(){
ios::sync_with_stdio(false);
memset(vis,false,sizeof(vis));
cin >> n >> m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
cin >> ch;
if(ch == '.') ma[n][m] = 1;
else ma[m][n] = 0;
}
int a[100000000][2];
memset(a,0,sizeof(a));
int head=0,rear=1;
do{
head++;
for(int k=0;k<4;++k){
x += dx[k];y += dy[k];
if(x==m&&y==n){found = true;rear=head;break;}
if(x<m&&x>=0&&y<n&&y>=0&&ma[x][y]==1){
rear++;
a[rear][0] = x+dx[k];
a[rear][1] = y+dy[k];
ma[x][y] = 0;
}
}
}while(head<rear);
if(found) cout <<"Yes" << endl;
else cout << "No" << endl;
return 0;
}