만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

겹치지 않는 등장 위치

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

요약
문자열 s와 여러 질의 문자열이 주어질 때, 각 질의 문자열이 s에서 겹치지 않게 등장하는 최대 개수를 구한다.
난이도

어려움10점 중 8점

유형
문자열, 문자열 매칭, 그리디, 정렬
정답자
아직 제출이 없습니다

문제

문자열 ss에서 문자열 tt의 겹치지 않는 등장 위치 집합이란, tt가 ss에 등장하는 위치들의 집합으로서 어느 두 등장 위치도 서로 겹치지 않는 것을 말한다. 즉, ss의 어떤 문자 위치도 두 개의 서로 다른 등장 위치에 속하지 않는다.

소문자 영어 알파벳 nn개로 이루어진 문자열 ss와 mm개의 질의가 주어진다. 각 질의는 문자열 t_it\_i 하나로 이루어진다.

각 질의마다, ss에서 tt의 겹치지 않는 등장 위치 집합의 최대 크기를 출력한다.

입력

첫째 줄에 문자열 ss의 길이 nn과 질의의 개수 mm이 공백으로 구분되어 주어진다 (1≤n≤1051 \le n \le 10^{5}, 1≤m≤1051 \le m \le 10^{5}).

둘째 줄에 소문자 영어 알파벳 nn개로 이루어진 문자열 ss가 주어진다.

다음 mm개의 줄에 각각 소문자 영어 알파벳으로 이루어진 문자열 t_it\_i가 주어진다. 이는 ii번째 질의이다 (1≤∣t_i∣≤n1 \le |t\_i| \le n이며, ∣t_i∣|t\_i|는 문자열 t_it\_i의 길이이다).

모든 t_it\_i의 길이의 합은 10510^{5} 이하임이 보장된다.

출력

각 질의 ii마다 ss에서 t_it\_i의 겹치지 않는 등장 위치 집합의 최대 크기를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    6 4
    aaaaaa
    a
    aa
    aaa
    aaaa
    
    예상 출력
    6
    3
    2
    1