def checkUnique3x3(array):
    visited = [False for _ in range(10)]
    for rr in range(3):
        for cc in range(3):
            cur = array[rr][cc]
            if visited[cur]:
                return False
            visited[cur] = True
    return True
def checkUnique9x9(line):
    visited = [False for _ in range(10)]
    for el in line:
        if visited[el]:
            return False
        visited[el] = True
    return True
def check3x3():
    idx = [0, 3, 6]
    for ii in idx:
        for jj in idx:
            tempArray = [[] for _ in range(3)]
            tempArray[0] = graph[ii][jj:jj+3]
            tempArray[1] = graph[ii+1][jj:jj+3]
            tempArray[2] = graph[ii+2][jj:jj+3]
            if not checkUnique3x3(tempArray):
                return False
    return True
def check9x9():
    # 가로
    for k in range(9):
        if not checkUnique9x9(graph[k]):
            return False
    # 세로
    for k in range(9):
        tempLine = []
        for ck in range(9):
            tempLine.append(graph[ck][k])
        if not checkUnique9x9(tempLine):
            return False
    return True
T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
    graph = [[] for _ in range(9)]
    for i in range(9):
        temp = map(int, input().split())
        for item in temp:
            graph[i].append(item)
    if check3x3() and check9x9():
        print("#" + str(test_case) + " " + str(1))
    else:
        print("#" + str(test_case) + " " + str(0))
역시 꼼꼼한 구현 문제.
3x3, 9x9 체크 로직만 잘 설계하면 끝나는 문제였다.
이중 for문에서 초기화 로직 짤 때 더 주의하면 좋겠다.