用的dfs
#include<bits/stdc++.h>
using namespace std;
const int N=501;
char mp[N][N];
bool vis[N][N];
int d[4][2]= {{0,1},{0,-1},{1,0},{-1,0}};
int n,ans,m;
void dfs(int x,int y) {
if(x<0||x>n+1||y<0||y>n+1||mp[x][y]=='*')return;
mp[x][y]='*';
for(int i=0; i<4; i++) {
dfs(x+d[i][0],y+d[i][1]);
}
}
int main() {
cin>>n>>m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++) {
cin>>mp[i][j];
}
dfs(0,0);
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if(mp[i][j]=='0')
ans++;
cout<<ans;
return 0;
}