SOJ ONLINE JUDGE

문자열 찾기

난이도: Platinum V 출제자: rlatjwls7882 시간 제한: 1000 ms 메모리 제한: 512 MB
해싱문자열

문자열 $T$와 길이가 $L$인 $Q$개의 문자열이 주어진다.

각 문자열이 $T$의 부분 문자열로 등장하는지 판별하라.

입력

첫 번째 줄에 문자열 $T$가 주어진다. $(1 \leq |T| \leq 10^6)$

두 번째 줄에 문자열의 길이 $L$과 쿼리의 개수 $Q$가 주어진다. $(1 \leq L \leq |T|,\ 1 \leq Q \leq 200\,000,\ L \times Q \leq 2 \cdot 10^6)$

세 번째 줄부터 $Q$개의 줄에 걸쳐 문자열 $P$가 하나씩 주어진다. $(|P|=L)$

모든 문자열은 알파벳 소문자로만 이루어져 있다.

출력

각 쿼리마다 문자열 $P$가 $T$의 부분 문자열로 등장하면 Yes를, 그렇지 않다면 No를 한 줄에 하나씩 출력한다.

예제 입력 1

abracadabra
4 5
abra
cada
dabr
acad
abac

예제 출력 1

Yes
Yes
Yes
Yes
No

예제 입력 2

aaaaa
3 3
aaa
aab
baa

예제 출력 2

Yes
No
No

제출