#include<bits/stdc++.h>
using namespace std;
const int N=105;
int n,m,ans;
int g[N][N];
int d[N][N];
void dfs(int u,int v)
{
pair<int,int>t(u,v);
int dx[4]={-1,0,1,0},dy[4]={0,-1,0,1};
d[u][v]=1;
cout<<"("<<u<<","<<v<<")";
for(int i=0;i<4;i++){
int x=t.first+dx[i],y=t.second+dy[i];
if(x>=0&&x<n&&y>=0&&y<m&&g[x][y]&&d[x][y]==-1){
dfs(x,y);
}
}
}
int main()
{
memset(d,-1,sizeof d);
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++) scanf("%1d",&g[i][j]);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
if(g[i][j]&&d[i][j]==-1){
ans++;
dfs(i,j);
puts("");
}
cout<<ans;
return 0;
}
4 10
0234500067
1034560500
2045600671
0000000089
(0,1)(0,2)(1,2)(2,2)(2,3)(1,3)(0,3)(0,4)(1,4)(2,4)(1,5)
(0,8)(0,9)
(1,0)(2,0)
(1,7)(2,7)(2,8)(3,8)(3,9)(2,9)
4
#include<bits/stdc++.h>
using namespace std;
const int N=105;
int n,m,ans;
int g[N][N];
int d[N][N];
pair<int,int>t;
void dfs(int u,int v)
{
t=make_pair(u,v);
int dx[4]={-1,0,1,0},dy[4]={0,-1,0,1};
d[u][v]=1;
cout<<"("<<u<<","<<v<<")";
for(int i=0;i<4;i++){
int x=t.first+dx[i],y=t.second+dy[i];
if(x>=0&&x<n&&y>=0&&y<m&&g[x][y]&&d[x][y]==-1){
dfs(x,y);
}
}
}
int main()
{
memset(d,-1,sizeof d);
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++) scanf("%1d",&g[i][j]);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
if(g[i][j]&&d[i][j]==-1){
ans++;
dfs(i,j);
puts("");
}
cout<<ans;
return 0;
}
4 10
0234500067
1034560500
2045600671
0000000089
(0,1)(0,2)(1,2)(2,2)(2,3)(1,3)(0,3)(0,4)(1,4)(2,4)
(0,8)(0,9)
(1,0)(2,0)
(1,5)
(1,7)(2,7)(2,8)(3,8)(3,9)(2,9)
5