TLE 7个点
#include<bits/stdc++.h>
#define int long long
#define PII pair<int,int>
#define endl "\n"
using namespace std;
const int N=5e2+5;
const int INF=1e9;
const double EPS=1e-6;
const int MOD=998244353;
char s[5]="\\/\\/",mp[N][N];
deque<PII>q;
int n,m,dis[N][N];
int dx[]={1,-1,-1,1},dy[]={1,1,-1,-1},ix[]={0,-1,-1,0},iy[]={0,0,-1,-1};
void bfs(){
for(int i=0;i<=n;i++){
for(int j=0;j<=m;j++){
dis[i][j]=INF;
}
}
q.push_back({0,0});
dis[0][0]=0;
while(!q.empty()){
int x=q.front().first,y=q.front().second;
q.pop_front();
for(int i=0;i<4;i++){
int xx=x+dx[i],yy=y+dy[i],ixx=x+ix[i],iyy=y+iy[i];
if(xx>=0&&xx<=n&&yy>=0&&yy<=m){
if(s[i]!=mp[ixx][iyy]){
if(dis[x][y]+1<dis[xx][yy]){
dis[xx][yy]=dis[x][y]+1;
q.push_back({xx,yy});
}
}else{
if(dis[x][y]<dis[xx][yy]){
dis[xx][yy]=dis[x][y];
q.push_back({xx,yy});
}
}
}
}
}
cout<<dis[n][m];
}
void solve(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>mp[i][j];
}
}
if((n+m)&1)cout<<"NO SOLUTION\n";
else bfs();
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int T=1;
// cin>>T;
while(T--)solve();
return 0;
}