Поликарп — частый пользователь одного очень популярного мессенджера. Он постоянно общается со своими друзьями. У него есть $$$n$$$ друзей, пронумерованных от $$$1$$$ до $$$n$$$.
Напомним, что перестановка размера $$$n$$$ — это такой массив размера $$$n$$$, что каждое число от $$$1$$$ до $$$n$$$ встречается в нем ровно один раз.
Так что его список последних диалогов может быть представлен в виде перестановки $$$p$$$ размера $$$n$$$. $$$p_1$$$ — это самые недавний диалог, $$$p_2$$$ — второй по давности и так далее.
Изначально список диалогов Поликарпа $$$p$$$ выглядит как $$$1, 2, \dots, n$$$ (другими словами, является тождественной перестановкой).
После этого он получает $$$m$$$ сообщений, $$$j$$$-е сообщение приходит от друга $$$a_j$$$. Тогда друг $$$a_j$$$ перемещается на первую позицию в перестановке, сдвигая всех между первой позицией и текущей позицией $$$a_j$$$ на $$$1$$$. Обратите внимание, что если друг $$$a_j$$$ уже стоит на первой позиции, то ничего не происходит.
Например, пусть список последних диалогов будет $$$p = [4, 1, 5, 3, 2]$$$:
Для каждого друга рассмотрим, на каких позициях он был в самом начале и после получения каждого сообщения. Поликарп хочет знать, какие были минимальная и максимальная позиции.
В первой строке записаны два целых числа $$$n$$$ and $$$m$$$ ($$$1 \le n, m \le 3 \cdot 10^5$$$) — количество друзей Поликарпа и количество полученных сообщений, соответственно.
Во второй строке записаны $$$m$$$ целых чисел $$$a_1, a_2, \dots, a_m$$$ ($$$1 \le a_i \le n$$$) — описания полученных сообщений.
Выведите $$$n$$$ пар целых чисел. Для каждого друга выведите минимальную и максимальную позиции, на которых он был в самом начале и после получения каждого сообщения.
5 4 3 5 1 4
1 3 2 5 1 4 1 5 1 5
4 3 1 2 4
1 3 1 2 3 4 1 4
В первом примере список последних диалогов Поликарпа выглядит так:
Так что, например, позиции друга $$$2$$$ — $$$2, 3, 4, 4, 5$$$, соответственно. Из всех них $$$2$$$ — это минимум, а $$$5$$$ — это максимум. Поэтому ответ для друга $$$2$$$ — это пара $$$(2, 5)$$$.
Во втором примере список последних диалогов Поликарпа выглядит так:
Название |
---|