시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
어떤 사람들은 대화 내용을 쉽게 알아들을 수 없도록 새로운 언어를 만들었다.
이 언어에는 N개의 단어가 있다. 한 문장은 이 단어들을 공백 없이 이어 붙여 만든 문자열이다. 각 단어는 문장 안에서 0번 이상 사용할 수 있다.
단어를 사용할 때는 단어 안의 문자 순서를 바꿀 수 있다. 이때 원래 단어와 비교해 위치가 달라진 문자의 개수가 그 단어를 바꾸는 비용이다. 예를 들어 abc는 비용 0으로 abc가 되고, 비용 2로 acb, cba, bac가 되며, 비용 3으로 bca, cab가 된다.
주어진 문장을 이 언어의 단어들로 해석할 때 필요한 비용의 최솟값을 구하시오.
첫째 줄에 해석할 문장이 주어진다. 문장의 길이는 최대 50이다.
둘째 줄에 단어의 개수 N이 주어진다. N은 50 이하의 자연수이다.
다음 N개의 줄에는 각 단어가 한 줄에 하나씩 주어진다. 각 단어의 길이는 최대 50이다.
문장과 단어는 모두 알파벳 소문자로만 이루어져 있다.
문장을 해석할 수 있다면 필요한 최소 비용을 출력한다.
해석할 수 없다면 -1을 출력한다.