시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
규현이와 진우는 둘만 아는 비밀어 목록을 가지고 있다. 각 비밀어는 글자의 순서를 바꾸어 사용할 수 있고, 원래 단어와 바꾼 단어를 같은 위치끼리 비교했을 때 서로 다른 위치의 개수가 그 비용이다.
예를 들어 비밀어 abc는 비용 0으로 abc가 되고, 비용 2로 acb, cba, bac가 되며, 비용 3으로 cab, bca가 될 수 있다.
비밀 문장은 비밀어들을 순서대로 이어 붙여 만든다. 같은 비밀어를 여러 번 사용할 수 있으며, 사용할 때마다 서로 다르게 재배열할 수 있다. 예를 들어 비밀어 abc를 두 번 사용하면 첫 번째는 그대로 abc, 두 번째는 비용 2를 들여 acb로 바꾸어 abcacb를 만들 수 있다.
주어진 비밀어들을 사용해 목표 비밀 문장을 만드는 데 필요한 최소 비용을 구하라. 목표 문장을 만들 수 없다면 -1을 출력한다.
첫 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스는 다음과 같이 주어진다.
a부터 z까지의 소문자로만 이루어져 있고, 길이는 1 이상 50 이하이다.N이 주어진다. N은 1 <= N <= 50인 자연수이다.N개의 줄에는 비밀어가 한 줄에 하나씩 주어진다.각 테스트 케이스마다 목표 비밀 문장을 만드는 데 필요한 최소 비용을 한 줄에 출력한다. 만들 수 없다면 -1을 출력한다.