```cpp
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<string>
#include<vector>
#include<queue>
#include<deque>
#include<stack>
#include<map>
#include<algorithm>
#define ll long long
int xb[105][105],ans,n,m;
void dfs(int x,int y){
if(x<1||x>n||y<1||y>m||xb[x][y]==-1||xb[x][y]==0){
return ;
}
xb[x][y]=-1;
dfs(x+1,y);
dfs(x-1,y);
dfs(x,y-1);
dfs(x,y+1);
}
using namespace std;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
string s;
cin>>s;
for(int j=0;j<m;j++){
xb[i][j+1]=s[j]-'0';
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(xb[i][j]!=0&&xb[i][j]!=-1){
dfs(i,j);
ans++;
}
}
}
cout<<ans;
return 0;
}
```
by dldltangmen @ 2024-04-14 10:28:27