1 #include<iostream>
2 #include<string.h>
3 using namespace std;
4 int a,m,n;
5 int ma[110][110],vis[110][110];
6 void dfs(int x,int y)
7 {
8 if(x<0||y<0||x==m||y==n||!ma[x][y]||vis[x][y])return ;
9 vis[x][y]=1;
10 dfs(x-1,y);
11 dfs(x,y-1); dfs(x,y+1);
12 dfs(x+1,y);
13 }
14 int main()
15 {
16 cin>>a;
17 while(a--)
18 {
19 memset(ma,0,sizeof(ma));
20 memset(vis,0,sizeof(vis));
21 cin>>m>>n;
22 int i,j;
23 for(i=0;i<m;i++)
24 for(j=0;j<n;j++)
25 cin>>ma[i][j];
26 int count=0;
27 for(i=0;i<m;i++)
28 for(j=0;j<n;j++)
29 if(ma[i][j]&&!vis[i][j])
30 {
31 count++;
32 dfs(i,j);
33 }
34 cout<<count<<endl;
35 }
36 }