#include<stdio.h>
#include<string.h>
int N,i,j,c[13][7],mv[5]={0,1,0,-1,0};
char M[13][7],t;


int ch(int h,int w,char p)
{
	int i,j,nh,nw,r=1;
	c[h][w]=1;
	for(i=0;i<4;i++)
	{
		nh=h+mv[i];nw=w+mv[i+1];
		if(M[nh][nw]==p&&!c[nh][nw])
		{
			c[nh][nw]=1;
			r+=ch(nh,nw,p);
		}
	}
	return r;
}

void del(int h,int w,char p)
{
	int i,j,nh,nw;
	M[h][w]='.';
	for(i=0;i<4;i++)
	{
		nh=h+mv[i];nw=w+mv[i+1];
		if(M[nh][nw]==p)
			del(nh,nw,p);
		else if(M[nh][nw]=='O')
			M[nh][nw]='.';
	}
}

int sh()
{
	int f=0,i,j;
	for(i=0;i<12;i++)
		for(j=0;j<6;j++)
		{
			if(M[i][j]=='.'||M[i][j]=='O')continue;
			memset(c,0,sizeof(c));
			if(ch(i,j,M[i][j])>=4)
			{
				del(i,j,M[i][j]);
				f=1;
				//dbg();
			}
		}
	return f;
}

int main()
{
	scanf("%d\n",&N);
	for(;N--;)
	{
		int c=0,i,j,a,b;
		for(i=0;i<12;i++)gets(M[i]);
		//dbg();
		for(;sh();c++)
		{
			for(i=11;i>=0;i--)
				for(j=0;j<6;j++)
				{
					if(M[i][j]=='.')
					{
						for(a=0;M[i][j]=='.'&&a<i;a++)
						{
							for(b=i;b>0;b--)
							{
								t=M[b-1][j];
								M[b-1][j]=M[b][j];
								M[b][j]=t;
							}
						}
					}
				}
			//dbg();
		}
		printf("%d\n",c);
	}
	return 0;
}