#include <bits/stdc++.h> using namespace std; int n,kk[300],ans=0,st[200][200]; char a[300][300]; int dx[5]={0,0,1,0,-1}; int dy[5]={0,1,0,-1,0}; struct node{ int x,y; }; int main(){ cin>>n; getchar(); for(int i=1;i<=n;i++){ string b; getline(cin,b); int l=b.size(); kk[i]=l; for(int j=0;j<l;j++){ a[i][j]=b[j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=kk[i];j++){ if(a[i][j]>='a'&&a[i][j]<='z'){ queue<node> q; q.push((node){i,j}); while(!q.empty()){ node u=q.front(); q.pop(); for(int i=0;i<=4;i++){ int tx=u.x+dx[i],ty=u.y+dy[i]; if(tx>=1&&tx<=n&&ty>=1&&ty<=kk[i]&&a[tx][ty]>='a'&&a[tx][ty]<='z'&&st[tx][ty]==0){ st[tx][ty]=1; ans++; q.push((node){tx,ty}); } } } ans++; } } } cout<<ans; return 0; }