마녀의 수수께끼

단어 N개가 주어질 때 각 단어의 글자 순서를 자유롭게 바꾼 뒤, 그 집합의 접두사 트리(trie) 노드 수가 최소가 되도록 배치하고 그 최솟값을 구한다.

보통7트라이동적 계획법비트 연산그리디아직 제출이 없습니다시간 제한2초메모리 제한64 MB

문제

모험가 마테이가 길고 고된 여정 끝에 마지막 목적지인 마녀 마리야의 집에 도착했다. 모험을 끝내려면 마녀가 내는 마지막 수수께끼를 풀어야 한다.

수수께끼를 풀려면 먼저 접두사 트리(트라이)라는 자료구조를 알아야 한다. 접두사 트리는 주어진 단어 집합에 나타나는 모든 접두사를 다음과 같이 나타낸다.

  • 트리의 각 간선에는 알파벳 문자가 하나씩 적혀 있다.
  • 루트는 빈 접두사를 나타낸다.
  • 루트가 아닌 노드는 비어 있지 않은 접두사를 하나씩 나타낸다. 그 접두사는 루트에서 그 노드까지 가는 경로 위의 간선에 적힌 문자를 순서대로 이어 붙인 문자열이다.
  • 한 노드에서 나가는 간선 중 같은 문자가 적힌 간선이 둘 이상 있는 경우는 없다. 그래서 모든 접두사를 나타내는 데 쓰이는 노드 수가 최소가 된다.

위 그림은 "A", "to", "tea", "ted", "ten", "i", "in", "inn"의 접두사 트리다.

마테이가 접두사 트리를 배우고 나서야 진짜 수수께끼가 시작된다.

마녀에게는 영어 소문자로만 이루어진 단어 NN개가 있다. 이 단어 집합의 접두사 트리에 노드가 몇 개인지를 묻는 것이라면 수수께끼는 아주 쉬웠을 것이다. 마녀가 알고 싶은 것은 따로 있다. 각 단어의 글자를 원하는 순서로 재배열한 다음 만든 접두사 트리의 노드 수 중 최솟값이 얼마인지 알고 싶어 한다.

마테이가 답을 찾도록 도와주자.

입력

첫째 줄에 정수 NN (1N161 \le N \le 16)이 주어진다.

다음 NN개 줄에는 영어 소문자로만 이루어진 단어가 한 줄에 하나씩 주어진다.

모든 단어의 길이의 합은 1,000,000보다 작다.

출력

마녀 마리야의 수수께끼의 답을 한 줄에 출력한다.