import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static int grid[][];
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input;
StringBuilder sb=new StringBuilder(1000);
int testcases=Integer.parseInt(br.readLine());
for (int t = 0; t < testcases; t++)
{
if(t>0)
sb.append("\n");
br.readLine();
input=br.readLine();
int dimension=input.length();
grid=new int[dimension][dimension];
for (int j = 0; j < dimension; j++) {
grid[0][j]=input.charAt(j)-48;
}
for (int i = 1; i < dimension; i++) {
input=br.readLine();
for (int j = 0; j < dimension; j++) {
grid[i][j]=input.charAt(j)-48;
}
}
int largest=0;
for (int i = 0; i < dimension; i++) {
for (int j = 0; j largest)
largest=count;
}
}
}
sb.append(largest+"\n");
}
System.out.print(sb);
}
public static int floodfill(int row,int column,int rowlimit,int columnlimit)
{
if(grid[row][column]!=1)
return 0;
int count=1;
grid[row][column]=0;
if(row-1>=0)
{
count+=floodfill(row-1, column, rowlimit, columnlimit);
if(column-1>=0)
count+=floodfill(row-1, column-1, rowlimit, columnlimit);
if(column+1<=columnlimit)
count+=floodfill(row-1, column+1, rowlimit, columnlimit);
}
if(row+1<=rowlimit)
{
count+=floodfill(row+1, column, rowlimit, columnlimit);
if(column-1>=0)
count+=floodfill(row+1, column-1, rowlimit, columnlimit);
if(column+1<=columnlimit)
count+=floodfill(row+1, column+1, rowlimit, columnlimit);
}
if(column-1>=0)
count+=floodfill(row, column-1, rowlimit, columnlimit);
if(column+1<=columnlimit)
count+=floodfill(row, column+1, rowlimit, columnlimit);
return count;
}
}