문자열과 쿼리

문자열 S에서 F(i)를 S의 접미사이자 S의 i번째 문자까지의 접두사인 가장 긴 문자열의 길이로 정의하고, M개의 질의에 답한다.

보통7문자열문자열 매칭누적 합구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

길이가 NN인 문자열 S=S1S2SNS = S_1 S_2 \cdots S_N이 주어진다. 함수 F(i)F(i)SS와 접두사 S1S2SiS_1 S_2 \cdots S_i의 가장 긴 공통 접미사의 길이다.

예를 들어 SS가 zaaxbaacbaa이면 F(1)=0F(1) = 0, F(2)=1F(2) = 1, F(3)=2F(3) = 2이다.

문자열 SS와 쿼리 MM개가 주어졌을 때, 각 쿼리 ii에 대해 F(i)F(i)를 구하는 프로그램을 작성한다.

입력

첫째 줄에 문자열 SS가 공백 없이 한 줄로 주어진다. SS의 길이 NN1N1061 \le N \le 10^6이다.

둘째 줄에 쿼리의 개수 MM이 주어진다. (1M1051 \le M \le 10^5)

셋째 줄부터 MM개의 줄에 각 쿼리의 정수 ii가 한 줄에 하나씩 주어진다. (1iN1 \le i \le N)

출력

각 쿼리 ii에 대해 F(i)F(i)를 입력에 주어진 순서대로 한 줄에 하나씩 출력한다.