为什么这个代码我运行会错误
#include<bits/stdc++.h>
using namespace std;
int s,n,m,a[205][205],h,t,q[40005][3];
int fx[5]={0,0,1,0,-1};
int fy[5]={0,1,0,-1,0};
int tx,ty;
bool f[205][205];
int sun;
int main(){
cin>>s;
while(s){
h=1;t=1;
sun=0;
memset(f,0,sizeof(f));
int x,y;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;i<=m;j++){
cin>>a[i][j];
if(a[i][j]=='r'){
x=i;
y=j;
}
}
}
q[1][1]=x;
q[1][2]=y;
f[x][y]=1;
while(h<=t){
for(int i=1;i<=4;i++){
tx=q[t][1]+fx[i];
tx=q[t][2]+fy[i];
if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&!f[tx][ty]&&a[tx][ty]!='#'){
t++;
q[t][1]=tx;
q[t][2]=ty;
sun++;
if(a[tx][ty]=='x')sun++;
f[tx][ty]=1;
}
}
h++;
}
cout<<sun<<'\n';
s--;
}
return 0;
}