동굴

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

카프카스 산맥에 있는 크루베라 동굴은 여러 방(chamber)을 잇는 거대한 균열들의 미로이다. 세계에서 가장 깊은 이 동굴(깊이 1710미터)을 탐사하던 도중 사고가 발생하여 탐험대원 한 명이 실종되었다. 실종 사실은 모든 대원이 동굴을 빠져나온 뒤에야 밝혀졌고, 동굴의 규모를 생각하면 한시가 급했다. 그래서 동굴의 모든 방을 수색하는 구조 작업을 벌이기로 했다.

각 방은 서로 다른 깊이에 있다. 일부 방들은 균열로 연결되어 있으며, 각 균열은 정확히 두 방을 잇는다. 구조에 참여하는 구조대원은 동굴의 입구 방 중 하나를 골라 밧줄을 타고 항상 아래 방향으로만 내려가며, 지나는 방들 중 일부(혹은 전부)를 수색할 수 있다. 한 방은 여러 구조대원이 중복해서 수색해도 된다. 모든 방을 수색하는 데 필요한 구조대원의 최소 인원수를 구하여라.

입력

첫 줄에 데이터 세트의 개수 zz가 주어진다. 이어서 zz개의 데이터 세트가 차례로 주어진다. 각 데이터 세트의 형식은 다음과 같다.

첫 줄에 방의 개수 nn (1n12001 \le n \le 1200)이 주어진다. 이어지는 nn개의 줄에는 각각 길이 nn인 0과 1로 이루어진 문자열이 주어진다. ii번째 줄의 jj번째 문자가 1이면, ii번 방이 jj번 방보다 위에 있으며 ii번 방에서 (도중에 다른 방들을 지날 수도 있지만) 밧줄을 타고 내려가 jj번 방에 도달할 수 있음을 뜻한다. 0이면 ii번 방에서 내려가는 방향으로 jj번 방에 도달할 수 없음을 뜻한다. 위에서 내려오는 균열이 하나도 없는 방(즉 어떤 방에서도 도달할 수 없는 방)을 입구 방으로 본다.

출력

각 데이터 세트마다, 모든 방을 수색하는 데 필요한 구조대원의 최소 인원수 kk를 한 줄에 하나씩 출력한다.