Изменения рейтингов за последние раунды временно удалены. Скоро они будут возвращены. ×

D. Наидлиннейший k-хороший подотрезок
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Задан массив из n целых чисел a. Подотрезком будем называть последовательность из одного и более подряд идущих элементов массива. Подотрезок будем называть k-хорошим, если в нём не более k различных чисел.

Найдите любой k-хороший подотрезок наибольшей длины.

Рекомендуется для ввода и вывода данных использовать функции scanf, printf в языке C++, поскольку они работают значительно быстрее потоков cin, cout. Аналогично, рекомендуется использовать классы BufferedReader, PrintWriter вместо Scanner, System.out в языке Java.

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

В первой строке находится пара целых чисел n, k (1 ≤ k ≤ n ≤ 5·105) — количество элементов в массиве и параметр k.

Во второй строке находятся n целых чисел ai (0 ≤ ai ≤ 106) — элементы массива a.

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

Выведите два целых числа l, r (l ≤ r) — номер самого левого и самого правого элементов k-хорошего подотрезка наибольшей длины. Если существует несколько хороших подотрезков наибольшей длины разрешается вывести любой из них. Элементы массива пронумерованы от 1 до n слева направо.

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