#include<bits/stdc++.h> using namespace std; int x,y,ans=0; char a[501][501]; int fx[4]={0,1,0,-1}; int fy[4]={1,0,-1,0}; void dfs(int ax,int ay){ for(int i=0;i<=3;i++){ int tx=ax+fx[i]; int ty=ay+fy[i]; if((tx>=1&&tx<=x&&ty>=1&&ty<=y)&&a[tx][ty]=='0'){ a[tx][ty]='*'; dfs(tx,ty); } } } int main(){ cin>>x>>y; for(int i=1;i<=x;i++){ for(int j=1;j<=y;j++){ cin>>a[i][j]; } } for(int i=1;i<=x;i++){ for(int j=1;j<=y;j++){ if((i==1||i==x||j==1||j==y)&&a[i][j]=='0'){ a[i][j]='*'; dfs(i,j); } } } for(int i=1;i<=x;i++){ for(int j=1;j<=y;j++){ if(a[i][j]=='0'){ ans++; } } } cout<<ans; return 0; } /************************************************************** Problem: 1913 User: zengdongxin Language: C++ Result: Accepted Time:35 ms Memory:2320 kb ****************************************************************/