#include #include #include #include #include #include using namespace std; #define REP(i,n) for(int i=0;i<(n);++i) #define REPS(i,s,t) for(int i=(s);i<(t);++i) #define PER(i,n) for(int i=0;i>(n);--i) #define PERS(i,s,t) for(int i=(s);i>(t);--i) #define INF 2000000007 #define MINF -200000007 #define MOD 17 // 2^20 #define MAX 200005 typedef unsigned int uint; typedef unsigned long long int ull; typedef long long int ll; template istream& operator >> (istream& is, vector& vec){ for(T& x: vec) is >> x; //for(int i=0; i> x[i]; とかでもいいです。 return is; } //int dp[MAX]; int H,W; void check(vector > &A,int x,int y){ if(0>x||x>=H)return; if(0>y||y>=W)return; if(A[x][y]==0) return; else{ A[x][y] = 0; check(A,x+1,y); check(A,x,y+1); check(A,x-1,y); check(A,x,y-1); } } int main(){ cin>>H>>W; int cnt=0; vector > A(H,vector(W,false)); cin>>A; REP(i,H){ REP(j,W){ if(A[i][j]==0)continue; cnt++; check(A,i,j); } } cout << cnt << endl; return 0; }