알 수 없는 문장

문장을 주어진 단어들의 글자 순서를 바꿔 만든 부분 문자열들로 나누고, 원래 위치에서 이동한 글자 수의 총합을 최소화하는 문제입니다.

보통5동적 계획법문자열구현면접 대비아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

어떤 사람들은 대화 내용을 쉽게 알아들을 수 없도록 새로운 언어를 만들었다.

이 언어에는 N개의 단어가 있다. 한 문장은 이 단어들을 공백 없이 이어 붙여 만든 문자열이다. 각 단어는 문장 안에서 0번 이상 사용할 수 있다.

단어를 사용할 때는 단어 안의 문자 순서를 바꿀 수 있다. 이때 원래 단어와 비교해 위치가 달라진 문자의 개수가 그 단어를 바꾸는 비용이다. 예를 들어 abc는 비용 0으로 abc가 되고, 비용 2acb, cba, bac가 되며, 비용 3으로 bca, cab가 된다.

주어진 문장을 이 언어의 단어들로 해석할 때 필요한 비용의 최솟값을 구하시오.

입력

첫째 줄에 해석할 문장이 주어진다. 문장의 길이는 최대 50이다.

둘째 줄에 단어의 개수 N이 주어진다. N50 이하의 자연수이다.

다음 N개의 줄에는 각 단어가 한 줄에 하나씩 주어진다. 각 단어의 길이는 최대 50이다.

문장과 단어는 모두 알파벳 소문자로만 이루어져 있다.

출력

문장을 해석할 수 있다면 필요한 최소 비용을 출력한다.

해석할 수 없다면 -1을 출력한다.