Кстати, надо бы взглянуть, какого цвета квадратик на телефоне: за сегодня Джефф, кажется, много ходил... Однако изучение цвета квадратика пришлось отложить: телефон Джеффа зазвонил. Солнце было слишком ярким, и блики мешали увидеть, кто же звонит. Джефф провел пальцем по низу экрана и поприветствовал собеседника. Ему показалось, что кто-то ответил, назвав его по имени. Но телефон продолжал звонить...
Джефф смотрел на телефон: в руках у него был старый аппарат, которым он уже давно не пользовался. Да и офисное здание должно уже не первый год пребывать в запустении: арендаторы съехали, поскольку здание планировали отремонтировать, но процесс этот сильно затянулся.
Чуть позже Джефф узнает, что не услышал n телефонных звонков. Эти звонки были совершены с m номеров (т.е. с некоторых номеров Джеффу звонили неоднократно). Пропущенные звонки на телефоне отображаются списком в порядке поступления: самым верхним оказывается номер, звонок с которого был пропущен последним по времени. Однако если в списке уже есть пропущенный звонок с этого номера, то он будет удален из списка и сгруппирован с последним (возле номера будет число, обозначающее количество пропущенных звонков, но сейчас для нас это не важно).
Ваша задача — по списку из n звонков определить для каждого номера, какую самую удаленную позицию от верха списка этот номер мог занимать в течение того времени, за которое были совершены эти звонки. Считайте, что изначально список пропущенных звонков был пуст.
В первой строке содержатся целые числа n и m (1 ≤ m ≤ n ≤ 1000) — количество пропущенных звонков и количество номеров, с которых эти звонки были совершены.
Во второй строке через пробел содержатся n номеров телефонов, с которых совершались звонки. Звонки перечислены в хронологическом порядке.
С целью защиты персональных данных абонентов, звонивших Джеффу, каждому номеру сопоставлено целое число от 1 до m (одинаковые номера закодированы одним и тем же числом, разные — разными числами).
Выведите m целых чисел p1, p2, ..., pm, где число pk означает самую удаленную позицию от верха списка, которую мог занимать номер телефона, закодированный числом k.
10 4
2 4 1 1 4 3 4 1 4 3
3 4 3 2
Поясним приведенный пример.
Список после первого звонка: 2
Список после второго звонка: 4 2
Список после третьего звонка: 1 4 2
Список после четвертого звонка: 1 4 2
Список после пятого звонка: 4 1 2
Список после шестого звонка: 3 4 1 2
Список после седьмого звонка: 4 3 1 2
Список после восьмого звонка: 1 4 3 2
Список после девятого звонка: 4 1 3 2
Список после десятого звонка: 3 4 1 2
| Name |
|---|


