전공책
면접 대비시간 제한1초메모리 제한512 MB
가격과 제목이 주어진 최대 16권의 책으로 길이 10 이하의 단어를 만들 때, 단어를 만들 수 있는 책 부분집합 중 최소 가격 합을 구합니다.
문제
곧 졸업을 앞둔 민호는 대학교 생활 동안 사두기만 하고 한 번도 펴보지 않은 전공책에 먼지가 쌓여 있는 것을 보고, 이 책들을 어떻게 처리할지 고민한다. 열심히 고민한 끝에 민호는 전공책을 모두 버리기로 마음먹는다. 그냥 버리기에는 심심했던 민호는 전공책 제목에 있는 글자를 오려서 단어 만들기 놀이를 하려고 한다. 단어 만들기 놀이는 아래 예시와 같다.




- 1번 책 :
COMPUTERARCHITECTURE(35,000원) - 2번 책 :
ALGORITHM(47,000원) - 3번 책 :
NETWORK(43,000원) - 4번 책 :
OPERATINGSYSTEM(40,000원)
만약 민호가 만들고 싶은 단어가 ALMIGHTY라면, 위 4개의 책 중 1번 책에서 A를, 2번 책에서 L, M, I, G, H, T를, 4번 책에서 Y를 오려내어 원하는 단어를 만들 수 있다. 이때 드는 비용은 1번, 2번, 4번 책 가격의 합인 122,000원이다.
만약 ANT라는 단어를 만들고 싶다고 하면, 2번 책에서 A를, 3번 책에서 N, T를 오려내어 원하는 단어를 만들 수 있다. 이때 드는 비용은 2번과 3번 책 가격을 합한 90,000원이다. 그런데 ANT라는 단어에서 A를 2번 책이 아니라 4번 책에서 오려낼 수도 있다. 4번 책에서 A를 오려냈을 때 드는 비용은 3번과 4번 책 가격의 합인 83,000원으로, 2번과 3번 책을 고른 비용보다 작다. 하지만 4번 책에는 ANT가 모두 들어 있으므로, 4번 책만 선택했을 때 드는 비용은 40,000원이다. 이는 ANT라는 단어를 만들기 위해 드는 가장 적은 비용이다.

민호는 여러 개의 전공책을 나열해 놓고, 심각한 고민 끝에 전공책 제목에 있는 글자를 오려내어 자신이 원하는 단어를 만드는 방법이 여러 가지라는 것을 깨달았다. 매우 심심했던 민호는 가장 적은 비용으로 자신이 원하는 단어를 만들려면 어떤 전공책을 선택해야 하는지 궁금해졌다. 하지만 일일이 가능한 조합을 만들어 보는 것은 매우 시간 낭비라고 생각한 민호는 컴퓨터공학과답게 프로그램을 만들려고 한다.
민호를 도와 각 전공책의 가격과 제목이 주어졌을 때, 가장 적은 비용으로 민호가 원하는 단어를 만들기 위해서 어떤 전공책을 선택해야 하는지 알아보자.
입력
첫 번째 줄에는 민호가 만들고자 하는 단어를 의미하는 문자열 T (1 ≤ |T| ≤ 10)가 주어진다. T는 항상 대문자이며, |T|는 문자열 T의 길이를 의미한다.
두 번째 줄에는 민호가 가진 전공책의 개수를 의미하는 정수 N (1 ≤ N ≤ 16)이 주어진다.
다음 N개의 각 줄에는 전공책 가격을 의미하는 정수 Ci (10,000 ≤ Ci ≤ 100,000)와 제목을 의미하는 문자열 Wi (1 ≤ |Wi| ≤ 50)가 주어진다. Wi는 항상 대문자이다.
출력
민호가 원하는 단어 T를 만들기 위해서 선택해야 하는 전공책의 가장 적은 가격의 합을 출력한다. 만약 단어를 만들 수 없다면 -1을 출력한다.