#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 10100;
int n,num;
int pan[N*N];
char shu='1';
char g[N][N];
int dx[4]= {-1,0,1,0};
int dy[4]= {0,-1,0,1};
void check(int a,int b) {
g[a][b] = shu;
for(int i=0; i<4; i++) {
int x=a+dx[i];
int y=b+dy[i];
if (x < 1 || x > n || y < 1 || y > n) continue;
if(g[x][y]=='#') check(x,y);
}
}
signed main() {
cin >> n;
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
cin >> g[i][j];
}
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
if(g[i][j]=='#') {
check(i,j);
shu++;
}
}
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
if(g[i][j]!='.'&&g[i][j]!='@') {
if(g[i][j+1]=='.'||g[i][j-1]=='.'||g[i+1][j]=='.'||g[i-1][j]=='.') g[i][j] = '@';
}
}
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
if(g[i][j]!='.' && g[i][j]!='@' && !pan[ g[i][j]-'0' ]) {
num++;
pan[g[i][j]-'0'] = 1;
}
}
}
cout << shu-'0'-num-1;
return 0;
}