화학 암호
면접 대비시간 제한2초메모리 제한1024 MB
암호 문자열과 원소 기호 목록이 주어질 때, 암호를 부분 수열로 포함하는 기호들의 최소 개수를 구합니다. 만들 수 없으면 -1을 출력합니다.
문제
보리스는 화학을 아주 좋아한다. 이유는 단순하다. 이 학문을 알면 집에서 보이지 않는 잉크, 독, 폭약 등 건강한 청소년의 관심을 끌 만한 것들을 만들 수 있다.
보리스는 자신 말고는 누구도 실험 기록을 읽지 못하길 바라서 특별한 암호를 쓴다. 여러 단어를 적을 때 단어를 순서대로 이어 쓴 다음, 그 결과 문자열에서 글자 몇 개를 지울 수 있다.
최근 보리스는 정사각형 격자 구조의 결정을 합성하는 실험을 다시 해야 했다. 일기를 살펴본 뒤, 그는 결정에 들어 있던 화학 원소 집합을 암호로 복원할 수 없다는 사실을 깨달고 놀랐다. 보리스는 원소가 그리 많지 않았다고 분명히 기억하므로, 일기에 적힌 암호를 만들 수 있는 원소의 최소 개수를 구해 달라고 부탁한다.
보리스는 지금까지 사용한 모든 화학 원소의 목록을 제공할 수 있다. 또한 보리스가 부주의해서 같은 원소를 여러 번 적었을 수도 있다. 이 경우 원소가 나타날 때마다 각각 센다.
입력
첫 줄에 암호 문자열 가 주어진다 (). 둘째 줄에는 보리스가 사용했을 수 있는 화학 원소의 개수 이 주어진다 (). 이후 개의 줄에 각각 한 글자 또는 두 글자로 된 원소 기호가 한 줄씩 주어진다.
입력의 모든 문자열은 영문 대문자와 소문자로만 이루어진다. 대문자와 소문자는 서로 다른 문자로 취급한다.
출력
암호를 만들 수 있는 화학 원소의 최소 개수를 한 줄에 출력한다. 답이 없으면 -1을 출력한다.