#include<bits/stdc++.h>
using namespace std;
int n,m,a[105][105];
bool b[105][105];
void dfs(int x,int y){
b[x][y]=1;
if(x==n&&y==m){
cout<<"Yes";
abort();
}
if(a[x+1][y]==2 && !b[x+1][y]&&x<=n&&y<=m)dfs(x+1,y);
if(a[x][y+1]==2 && !b[x][y+1]&&x<=n&&y<=m)dfs(x,y+1);
if(a[x-1][y]==2 && !b[x-1][y]&&x<=n&&y<=m)dfs(x-1,y);
if(a[x][y-1]==2 && !b[x][y-1]&&x<=n&&y<=m)dfs(x,y-1);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
char w;
cin>>w;
if(w=='#')a[i][j]=1;
else a[i][j]=2;
}
}
b[1][1]=1;
dfs(1,1);
cout<<"No";
return 0;
}
一片RE