#include #include using namespace std; int a[505][505],sol[505][505],parc[505][505],n,m,solt,nr; string s; void parcurge (int i,int j,int preci,int precj) { parc[i][j]=nr; if (preci!=i-1 && a[i-1][j]==1) { if (parc[i-1][j]>0) { if (sol[i][j]==0 || parc[i-1][j]=sol[i-1][j]) if (sol[i-1][j]<=sol[i][j] || sol[i][j]==0) sol[i][j]=sol[i-1][j]; } } if (precj!=j-1 && a[i][j-1]==1) { if (parc[i][j-1]>0) { if (sol[i][j]==0 || parc[i][j-1]=sol[i][j-1]) if (sol[i][j-1]0) { if (sol[i][j]==0 || parc[i+1][j]=sol[i+1][j]) if (sol[i+1][j]0) { if (sol[i][j]==0 || parc[i][j+1]=sol[i][j+1]) if (sol[i][j+1]>n>>m; getline(cin,s); for (int i=1;i<=n;++i) { getline(cin,s); for (int j=1;j<=m;++j) { if (s[j-1]=='1') a[i][j]=1; } } for (int i=1;i<=n;++i) { for (int j=1;j<=m;++j) { if (parc[i][j]==0 && a[i][j]==1) nr=1,parcurge(i,j,0,0); if (sol[i][j]>0) { ++solt;} } } cout<