#include<cstdio>
int t,n;
int vx[13][2003];
int vy[13][2003];
int fx[13][2003];
int lx[13][2003];
int fy[13][2003];
int ly[13][2003];
int a[2003][2003];
int main()
{
	scanf(" %d",&t);
	while(t--)
	{
		scanf(" %d",&n);
		for(int i=1;i<=n;++i)
		{
			for(int j=1;j<=n;++j)
			{
				scanf(" %1d",&a[i][j]);
			}
		}
		for(int d=0;d<10;++d)
		{
			int ans=0;
			for(int j=1;j<=n;++j)
			{
				fx[d][j]=lx[d][j]=0;
				for(int i=1;i<=n;++i)
				{
					if(a[i][j]!=d)continue;
					if(!fx[d][j])
					{
						fx[d][j]=i;
						break;
					}
				}
				for(int i=n;i;--i)
				{
					if(a[i][j]!=d)continue;
					if(!lx[d][j])
					{
						lx[d][j]=i;
						break;
					}
				}
				if(fx[d][j])vx[d][j]=((n-fx[d][j]>lx[d][j]-1)?(n-fx[d][j]):(lx[d][j]-1));
				else vx[d][j]=0;
			}
			for(int i=1;i<=n;++i)
			{
				fy[d][i]=ly[d][i]=0;
				for(int j=1;j<=n;++j)
				{
					if(a[i][j]!=d)continue;
					if(!fy[d][i])
					{
						fy[d][i]=j;
						break;
					}
				}
				for(int j=n;j;--j)
				{
					if(a[i][j]!=d)continue;
					if(!ly[d][i])
					{
						ly[d][i]=j;
						break;
					}
				}
				if(fy[d][i])vy[d][i]=((n-fy[d][i]>ly[d][i]-1)?(n-fy[d][i]):(ly[d][i]-1));
				else vy[d][i]=0;
			}
			for(int i=1;i<=n;++i)
			{
				if(!vx[d][i])continue;
				for(int j=1;j<i;++j)
				{
					if(!vx[d][j])continue;
					if(vx[d][j]*(i-j)>ans)ans=vx[d][j]*(i-j);
					if(vx[d][i]*(i-j)>ans)ans=vx[d][i]*(i-j);
				}
			}
			for(int i=1;i<=n;++i)
			{
				if(!vy[d][i])continue;
				for(int j=1;j<i;++j)
				{
					if(!vy[d][j])continue;
					if(vy[d][j]*(i-j)>ans)ans=vy[d][j]*(i-j);
					if(vy[d][i]*(i-j)>ans)ans=vy[d][i]*(i-j);
				}
			}
			printf("%d ",ans);
		}
		puts("");
	}
	return 0;
}