B3625
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,ans=0,a[1010][1010];
char sr;
int dx[5]={0,-1,0,1,0};
int dy[5]={0,0,1,0,-1};
void dfs(int x,int y)
{
for(int i=1;i<=4;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>0&&xx<=n&&yy>0&&yy<=m&&a[xx][yy]==0)
{
a[xx][yy]=1;
if(xx==n&&yy==m)
{
ans=1;
}
else dfs(xx,yy);
a[xx][yy]=0;
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>sr;
if(sr=='#') a[i][j]=1;
}
}
if(a[1][1]==1||a[n][m]==1)
{
cout<<"No";
return 0;
}
a[1][1]=1;
dfs(1,1);
if(ans==1) cout<<"Yes";
else cout<<"No";
return 0;
}