本蒟蒻刚学BFS,请问下面的代码为什么会MLE?```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m;
struct Point{
int x,y;
};
vector<vector> a;
vector fx = {
Point{0, 1},
Point{1, 0},
Point{0,-1 },
Point{-1, 0}
};
void bfs(Point p) {
std::queue q;
q.push(p);
while(!q.empty()){
Point point = q.front();
q.pop();
for (int j = 0; j < 4; ++j) {
int nx = point.x + fx[j].x;
int ny = point.y + fx[j].y;
if (nx == n && ny == m){
cout << "Yes";
return;
}
if (nx < 1 || nx > n || ny < 1 || ny > m) {
continue;
}
if (a[nx][ny] = '.') {
q.push(Point{nx, ny});
a[nx][ny] = '#';
}
}
}
cout << "No";
}
int main() {
cin >> n >> m;
a.resize(n + 1, vector(m + 1,0));
for (int i = 1; i <= n; i++){
string str;
cin >> str;
for (int j = 1; j <= m; j++){
a[i][j] = str[j - 1];
}
}
bfs({1,1});
return 0;
}