#include<bits/stdc++.h>
using namespace std;
int x[4]={0,0,1,-1},y[4]={1,-1,0,0};
char a[110][110];
int n,m,vis[105][105];
int flag=0;
void dfs(int x1, int y1)
{
if(x1==n && y1==m)
{
flag=1;
return;
}
for(int i=1;i<=4;i++)
{
int x2=x1+x[i],y2=y1+y[i];
if (x2>=1 && x2<=n && y2>=1 && y2<=m && a[x2][y2]=='.' && vis[x2][y2]==0)
{
vis[x2][y2]=1;
dfs(x2,y2);
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
vis[1][1]=1;
dfs(1,1);
if(flag)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
return 0;
}