#include <bits/stdc++.h>
#include<iostream>
#include<queue>
using namespace std;
int n,m,cont;
struct point{
int x;int y;
};
string a[10000];
int vis[10000][10000];
int d[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
queue<point> q;
void bfs(int x,int y){
point nx;
nx.x=x;
nx.y=y;
q.push(nx);
while(!q.empty()){
point tmp=q.front();
for(int i=0;i<4;i++){
point nb=tmp;
nb.x+=d[i][0];
nb.y+=d[i][1];
if(nb.x>=0&&nb.x<(int)a[nb.x].size()&&nb.y>=0&&(int)a[nb.x].size()>nb.y&&vis[nb.x][nb.y]==0&&a[nb.x][nb.y]!='*'){
q.push(nb);
}
}
vis[tmp.x][tmp.y]=cont;
q.pop();
}
}
int main(){
cin>>n;
for(int i=0;i<=n;i++){
getline(cin,a[i]);
}
for(int i=0;i<n;i++)
for(int j=0;j<(int)a[i].size();j++){
if(vis[i][j]==0&&a[i][j]!='*'){
cont++;
bfs(i,j);
}
}
cout<<cont;
return 0;
}