홍준이는 문자열을 좋아해

길이 50000 이하의 문자열 S와 최대 100000개의 질의가 주어질 때, 각 질의의 두 짧은 패턴 A와 B를 모두 부분 문자열로 포함하는 가장 짧은 연속 부분 문자열의 길이를 구한다.

어려움8문자열문자열 매칭누적 합이분 탐색아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

홍준이는 문자열을 좋아해서 문자열과 관련된 문제를 여러 개 만들어 보고 있습니다.

그중 하나는 이렇습니다. 문자열 SS와 두 문자열 AA, BB가 주어질 때, AABB를 모두 부분 문자열로 포함하는 SS의 연속 부분 문자열 가운데 길이가 가장 짧은 것을 구합니다. AA가 나타나는 자리와 BB가 나타나는 자리는 겹쳐도 됩니다.

홍준이는 똑똑해서 이 문제를 금방 풀어버렸습니다. 그래서 두 문자열 AABB가 질문으로 QQ번 들어오는, 한층 더 어려운 문제를 생각했습니다. 답을 빠르게 구하는 방법을 고민하던 홍준이는 너무 어려워서 AABB의 길이가 짧다면 빨리 풀 수 있을 것으로 생각하고 있습니다.

홍준이를 도와 질문마다 답을 구하는 프로그램을 작성하세요.

입력

첫째 줄에 길이가 5000050\,000 이하인 문자열 SS가 주어집니다.

둘째 줄에 질문의 개수 QQ가 주어집니다. QQ0Q1000000 \le Q \le 100\,000인 정수입니다.

셋째 줄부터 QQ개의 줄에 걸쳐 두 문자열 AABB가 공백으로 구분되어 주어집니다. AABB의 길이는 각각 11 이상 44 이하입니다.

SS, AA, BB는 모두 영문 알파벳 소문자로만 이루어져 있습니다.

출력

QQ개의 줄에 걸쳐 각 질문의 답을 한 줄에 하나씩 출력합니다. 각 줄에는 AABB를 모두 부분 문자열로 포함하는 SS의 연속 부분 문자열의 최소 길이를 출력합니다. 그런 연속 부분 문자열이 존재하지 않으면 1-1을 출력합니다.