String LD

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

문제

Stringld(left delete)는 문자열을 받아 가장 왼쪽 문자 하나를 지우는 함수다. 예를 들어 Stringld("acm")"cm"을 돌려준다.

서로 다른 단어로 이루어진 목록이 주어진다. 한 단계마다 목록에 있는 모든 단어에 Stringld를 한 번씩 적용한다. 아래 두 조건 중 적어도 하나가 참이 될 때까지 몇 단계를 적용할 수 있는지 구하는 프로그램을 작성하라.

  1. 어떤 단어가 빈 문자열이 된다.
  2. 같은 단어가 두 개 이상 생긴다.

예를 들어 목록이 aab, abac, caac라면 함수를 한 번 적용한 결과는 ab, bac, aac다. 한 번 더 적용하면 b, ac, ac가 되고 ac가 두 개이므로 조건 2가 참이다. 그래서 답은 1이다. 조건을 참으로 만든 마지막 단계는 세지 않는다.

입력

입력에는 테스트 케이스가 여러 개 들어 있다. 각 테스트 케이스의 첫 줄에는 단어의 개수 nn (1n1001 \le n \le 100)이 주어진다. 이어지는 nn개의 줄에는 최대 100자의 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 한 테스트 케이스 안의 단어는 모두 서로 다르다. 입력은 0 하나만 있는 줄로 끝난다.

출력

각 테스트 케이스마다 Stringld를 최대 몇 번 호출할 수 있는지 한 줄에 출력한다.