라빈-카프
문자열 $T$와 $Q$개의 문자열이 주어진다.
각 문자열의 길이는 모두 $L$이다.
각 문자열이 $T$의 부분 문자열로 등장하는지 판별하라.
입력
첫 번째 줄에 알파벳 소문자로 이루어진 문자열 $T$가 주어진다. $(1 \leq |T| \leq 1\,000\,000)$
두 번째 줄에 문자열의 길이 $L$과 쿼리의 개수 $Q$가 주어진다. $(1 \leq L \leq |T|, 1 \leq Q \leq 200\,000, L \times Q \leq 2\,000\,000)$
세 번째 줄부터 $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