H. ПалиндромПалиндром
ограничение по времени на тест
5 секунд
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Мы определяем значение юмора строки $$$t$$$ как длину самой длинной палиндромной строки, которая встречается в ней как минимум дважды.

Формально, строка $$$p$$$ является юмором относительно $$$t$$$, если и только если выполняются оба следующих условия:

  1. $$$p$$$ является палиндромом, и
  2. существуют как минимум два различных индекса $$$i \in [1, |t| - |p| + 1]$$$, такие что $$$t[i, i + |p| - 1] = p$$$.

Значение юмора строки $$$t$$$ определяется как максимальная длина среди всех юморных строк относительно $$$t$$$.

Вам дана строка $$$s$$$ длины $$$n$$$, которая содержит только строчные латинские буквы, и $$$q$$$ запросов. Каждый запрос содержит два целых числа $$$l_i$$$, $$$r_i$$$, и вам нужно найти значение юмора строки $$$s[l_i, r_i]$$$.

Здесь $$$a[l, r]$$$ определяется как строка $$$a_l,a_{l+1},\ldots,a_r$$$.

Входные данные

Первая строка содержит два целых числа $$$n$$$, $$$q$$$ ($$$1\le n,q\le 5\cdot10^5$$$).

Вторая строка содержит строку $$$s$$$.

Следующие $$$q$$$ строк содержат описание запросов. $$$i$$$-я строка содержит два целых числа $$$l_i$$$, $$$r_i$$$ ($$$1\le l_i\le r_i\le n$$$).

Выходные данные

В $$$i$$$-й строке выведите ответ на $$$i$$$-й запрос.

Пример
Входные данные
12 6
aaaabbbbaaaa
1 12
2 7
3 10
4 7
5 9
4 5
Выходные данные
4
2
3
2
3
0
Примечание

В первом запросе следующие палиндромные строки встречаются как минимум дважды: a,aa,aaa,aaaa,b,bb,bbb. Самая длинная из них — aaaa, поэтому значение юмора равно $$$4$$$.

Во втором запросе одной из самых длинных юморных строк относительно $$$s[2, 7]$$$ является aa.