#include<stdio.h>
int Y[]={0,1,0,-1};
int X[]={1,0,-1,0};
int main(){
  int n,ny,nx,t,r,i,j,k,c,f,e,y[200],x[200],d[20][10]={0};
  char s[20][10]={0};
  scanf("%d",&n);
  while(n--){
    for(i=0;i<12;i++)scanf("%s",s[i+1]+1);
    for(c=0;f=1;c++){
      for(i=1;i<12;i++){
	for(j=0;j<6;j++){
	  if(d[i+1][j+1]||s[i+1][j+1]=='.'||s[i+1][j+1]=='O')continue;
	  d[y[t=0]=i+1][x[0]=j+1]=1;
	  for(r=1;r-t;t++){
	    for(k=0;k<4;k++){
	      ny=y[t]+Y[k];
	      nx=x[t]+X[k];
	      if(s[ny][nx]-s[y[0]][x[0]]||d[ny][nx])continue;
	      d[y[r]=ny][x[r]=nx]=1;
	      r++;
	    }
	  }
	  if(r<4)continue;
	  for(t=f=0;t<r;t++){
	    d[y[t]][x[t]]=2;
	    for(k=0;k<4;k++){
	      ny=y[t]+Y[k];
	      nx=x[t]+X[k];
	      if(s[ny][nx]=='O')d[ny][nx]=2;
	    }
	  }
	}
      }/*printf("a\n");
      for(i=0;i<12;i++){
	for(j=0;j<6;j++)printf("%d",d[i+1][j+1]);
	printf("\n");
	}printf("\n");//*/
      if(f)break;
      for(j=1;j<7;j++){
	e=0;
	for(i=13;i>0;i--){
	  s[i+e][j]=s[i][j];
	  if(d[i][j]==2)e++;//,printf("%d %d\n",i,j);
	  d[i][j]=0;
	}
	for(;i+e>0;i--)s[i+e][j]='.';
      }
      //for(i=0;i<12;i++)printf("%s\n",s[i+1]+1);//break;
    }
    printf("%d\n",c);
  }
  return 0;
}