D. Виртуальная память
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Технология виртуальной памяти позволяет выполнять программы, требующие больше оперативной памяти, чем установлено в компьютере. В большинстве современных архитектур виртуальная память организуется с помощью страничной адресации. Рассмотрим упрощённо данную технологию.

Вся виртуальная память разделена на страницы — области памяти фиксированной длины. Когда программа обращается к какому-то адресу, то по адресу вычисляется номер страницы и проверяется, содержится ли данная страница в физической памяти либо выгружена на диск.

Если нужная страница выгружена на диск, то её нужно переместить в физическую память. Но, поскольку она занята другими страницами, сначала нужно какую-то страницу переместить из физической памяти на диск. Чтобы определить номер выгружаемой страницы, используется метод LRU (least recently used): на диск будет перемещена та страница, к которой дольше всего не было обращений. Если же таких страниц несколько, пусть это будет страница с наименьшим номером среди них.

Ваша задача — смоделировать работу описанной системы.

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

В первой строке вводится целое число $$$n$$$ — размер виртуальной памяти в страницах ($$$1 \le n \le 2 \cdot 10^5$$$).

Во второй строке вводится целое число $$$m$$$ — размер физической памяти в страницах ($$$1 \le m \le n$$$).

В третьей строке вводится целое число $$$k$$$ — количество обращений к страницам ($$$1 \le k \le 2 \cdot 10^5$$$).

В четвёртой строке вводятся $$$k$$$ целых чисел от $$$1$$$ до $$$n$$$ — номера страниц в порядке обращения к ним.

Перед началом работы программы в физической памяти находятся страницы с номерами от 1 до $$$m$$$, а на диске — страницы с номерами от $$$m+1$$$ до $$$n$$$.

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

Выведите в порядке возрастания $$$m$$$ целых чисел — номера страниц, находящихся в физической памяти по окончании работы программы.

Пример
Входные данные
3
2
2
1 3
Выходные данные
1 3