상근이와 선영이는 조금 독특한 농장을 운영한다. 보통 농장에서는 동물이나 채소를 기르지만, 이들은 문자열을 기른다.
문자열은 연속된 문자의 나열이다. 문자열이 자랄 때는 왼쪽 끝이나 오른쪽 끝에만 문자가 하나씩 붙는다. 이미 있던 문자가 사라지거나, 문자열 중간에 새로운 문자가 끼어드는 일은 없다.
두 사람은 문자열이 자라는 과정을 사진으로 찍어 두었다. 그런데 사진에 아무 설명도 적어 두지 않아서, 어떤 사진이 어떤 문자열의 사진인지 잊어버렸다. 이제 사진들을 자라난 순서대로 벽에 걸려고 한다.
각 사진은 하나의 문자열로 나타낼 수 있다. 사진을 나열한 순서 $s_1, s_2, \dots, s_k$ 는 다음 규칙을 지켜야 한다. 사진 $s_i$ 가 사진 $s_{i+1}$ 바로 앞에 오려면, $s_{i+1}$ 은 $s_i$ 가 더 자란 형태여야 한다. 즉 $s_i$ 는 $s_{i+1}$ 의 연속된 부분 문자열이어야 한다. 같은 사진을 두 번 찍지는 않으므로, 나열에 쓰이는 사진은 모두 서로 다르다.
찍은 사진들이 주어질 때, 규칙을 지키며 나열할 수 있는 가장 긴 사진의 개수를 구하는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어진다.
각 테스트 케이스의 첫째 줄에는 사진의 개수 $N$ 이 주어진다 ($1 \le N \le 10^4$). 이어지는 $N$ 개의 줄에는 각 사진에 찍힌 문자열이 한 줄에 하나씩 주어진다. 문자열은 알파벳 소문자로만 이루어지며, 길이는 $1000$ 을 넘지 않는다.
한 테스트 케이스에서 주어지는 모든 문자열의 길이의 합은 $10^6$ 을 넘지 않는다.
입력의 마지막 줄에는 $0$ 하나가 주어지며, 이는 입력의 끝을 의미한다.
각 테스트 케이스마다, 규칙을 지키며 나열할 수 있는 가장 긴 사진 순서의 길이를 한 줄에 출력한다.