#include <iostream>
using namespace std;
int n,m;
char a[10005][10005];
int xx[5]={0,0,0,1,-1};
int yy[5]={0,1,-1,0,0};
void dfs(int lx,int ly){
if(lx==n&&ly==m){
cout << "Yes";
exit(0);
}
int nx,ny;
for(int i = 1;i <= 4;i++){
nx=lx+xx[i];
ny=ly+yy[i];
if(nx<=n&&ny<=m&&nx>0&&ny>0&&a[nx][ny]!='#'){
a[nx][ny]='#';
dfs(nx,ny);
a[nx][ny]='.';
}
}
}
int main(){
cin >> n >> m;
for(int i = 1;i <= n;i++)
for(int j = 1;j <= m;j++)
cin >> a[i][j];
dfs(1,1);
cout << "No";
return 0;
}
就10分
9个TLE