Генератор деревьев
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Назовём массив $$$b_1,b_2,\ldots,b_{2k-1}$$$, $$$k$$$-древесным, для целого $$$k \geq 2$$$, если его элементы можно переставить таким образом, чтобы одновременно были выполнены следующие условия:

Более неформально, после перестановки массив должен представлять собой то, как чаще всего задаётся в входных данных дерево размера $$$k$$$: первым элементом является $$$k$$$, количество вершин, а далее задаётся $$$k-1$$$ рёбер, и каждое ребро задаётся двумя вершинами. Обратите внимание, что номерами вершин могут быть любые целые числа.

Например, массив $$$[4, 100, 4, 3, 3]$$$ является $$$3$$$-древесным, так как его элементы можно переставить в $$$[3, 3, 4, 4, 100]$$$, и граф с рёбрами $$$3 \leftrightarrow 4$$$, $$$4 \leftrightarrow 100$$$ является деревом из $$$3$$$ вершин.

Вам дан массив $$$a_1, a_2, \ldots, a_n$$$ и $$$q$$$ запросов. В каждом запросе даны два числа $$$1 \leq l \leq r \leq n$$$, и нужно найти количество целых $$$k \geq 2$$$ таких, что у массива $$$a_l, \ldots, a_r$$$ есть хотя бы одна $$$k$$$-древесная подпоследовательность.

$$$^{\text{∗}}$$$Напомним, что граф на $$$k$$$ вершинах является деревом, если он является связным, то есть между каждой парой вершин существует путь по рёбрам графа, и содержит ровно $$$k-1$$$ рёбер. В частности, дерево не содержит петель и кратных рёбер.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа $$$n, q$$$ ($$$1 \le n \le 10^5, 1 \le q \le 10^5$$$) — длина массива и количество запросов.

Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 2n$$$) — массив $$$a$$$.

Каждая из последующих $$$q$$$ строк набора входных данных содержит два целых числа $$$l, r$$$ ($$$1 \le l \le r \le n$$$) — параметры запроса.

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$10^5$$$, а также сумма $$$q$$$ по всем наборам входных данных не превосходит $$$10^5$$$.

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

Выведите ответ на каждый запрос в отдельной строке.

Пример

Входные данные
1
10 15
6 1 13 6 4 4 1 5 2 5
1 10
1 9
2 10
1 8
2 9
3 10
1 7
2 8
3 9
4 10
1 6
2 7
3 8
4 9
5 10
Выходные данные
3
3
2
1
1
1
1
0
1
1
0
0
0
1
1

Примечание

В первом тестовом примере, в первом запросе существуют следующие древесные подпоследовательности:

Эти три дерева представлены на картинках ниже.