ABCD 살인마

시간 제한2초메모리 제한512 MB

요약
오려낸 단어들이 같은 문자가 겹치도록 이어 붙여야 할 메시지를 만들 때 필요한 최소 단어 수를 구하고 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
문자열 매칭, 배열, 동적 계획법, 큐
정답자
아직 제출이 없습니다

문제

Oscar는 범죄 영화를 무척 즐겨 본다. 그는 악당들이 얼마나 기발해질 수 있는지에 감탄한다. 자신도 그런 기발함을 뽐내고 싶다. 하지만 경험이 거의 없어서 독자적인 속임수를 떠올리지 못한다. 그래서 오래된 속임수에서 영감을 얻으려 한다. 그는 범죄자들이 신문에서 글자를 오려 붙여 협박문을 만드는 장면을 늘 좋아했다. 그렇다고 Oscar가 완전히 베끼는 것은 아니라서, 이 속임수를 자기만의 방식으로 바꿨다. 글자를 하나하나 붙여 문장을 만드는 것은 너무 지루하고 시간이 많이 걸린다고 느꼈다. 그래서 단어를 통째로 오려 협박문을 만들기로 했다.

Oscar는 시중 신문을 여러 부 샀으므로 단어를 오릴 종이는 사실상 무한하다. 특정 단어를 원하는 만큼 오릴 수 있다. 다만 신문에 나오는 단어 집합이라는 제약은 남는다. 일부 단어는 신문에 전혀 나오지 않기 때문이다. 일을 조금 더 쉽게 하려고 협박문에서 모든 구두점과 공백 문자를 지우고 대소문자도 무시하기로 했다. 또한 오려낸 단어들이 겹치는 부분의 글자가 같다면 겹쳐도 된다. Oscar는 이제 협박문을 완성하기 위해 신문에서 최소 몇 개의 단어를 오려야 하는지 궁금해한다.

입력

첫째 줄에는 신문에 나오는 단어의 수 LL이 주어진다 (1≤L≤3⋅1051 \le L \le 3 \cdot 10^5).

다음 줄에는 협박문의 텍스트가 주어진다. 텍스트는 비어 있지 않고 소문자 영어 알파벳으로만 이루어지며, 길이는 최대 3⋅1053 \cdot 10^5이다.

그다음 LL개 줄에는 신문에 나오는 단어가 각각 하나씩 소문자 영어 알파벳으로 주어진다. 이 단어는 비어 있지 않고 협박문의 텍스트보다 길지 않다. 신문에 나오는 모든 단어는 입력에 적어도 한 번 나온다. 모든 단어의 길이 합은 3⋅1053 \cdot 10^5 이하이다.

출력

협박문을 구성하기 위해 Oscar가 신문에서 오려야 하는 단어의 최소 개수를 출력한다. 협박문을 구성할 수 없다면 −1-1을 출력한다. 각 단어는 신문에서 실제로 오려낸 횟수만큼 센다.

예제3

  1. 예제 1

    입력
    3
    aaaaa
    a
    aa
    aaa
    
    예상 출력
    2
    
  2. 예제 2

    입력
    5
    abecedadabra
    abec
    ab
    ceda
    dad
    ra
    
    예상 출력
    5
    
  3. 예제 3

    입력
    9
    icpcontesticpc
    international
    collegiate
    programming
    contest
    central
    europe
    regional
    contest
    icpc
    
    예상 출력
    3