#include<bits/stdc++.h>
#define N 1001
using namespace std;
#define int long long
string mp[N];
int h;



int dx[] = {-1,0,1};
int calc(int lx,int y){
  int rx = lx;
  
  mp[y][lx] = ' ';
  while(rx+1<mp[y].size()&&mp[y][rx+1]=='*')mp[y][++rx] = ' ';
  int res = rx - lx + 1;
  while(1){
    if(mp[y][lx+1]=='*')break;
    y++;
    int nrx,nlx; 
    for(int i=-1;i<=1;i++)
      if(rx+i>=0 && rx+i<mp[y].size()&&mp[y][rx+i]=='*') nrx = rx+i;

    for(int i=1;i>=-1;i--)
      if(lx+i>=0&&lx+i<mp[y].size()&&mp[y][lx+i]=='*') nlx = lx+i;

    rx = nrx,lx = nlx;
    mp[y][rx] = mp[y][lx] = ' ';
    res += rx-lx + 1;
  }
  for(int i=lx;i<=rx;i++)mp[y][i] = ' ';
  return res;
}

signed main(){
  int cnt = 0;
  while(1){

    
    cin>>h;
    if(!h) break;
    if(cnt++)cout<<"----------"<<endl;
    cin.ignore();
    for(int i=0;i<h;i++)getline(cin,mp[i]);
    
    map<int,int> ans;
    for(int i=0;i<h;i++)
      for(int j=0;j<mp[i].size();j++)
	if(mp[i][j] == '*')ans[calc(j,i)]++;

    for(auto it=ans.begin();it!=ans.end();it++) cout<< it->first<<" "<<it->second<<endl;
    
  }
  return 0;
}