D. Теория заговора
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Известен набор событий, заданных массивом целых чисел ai.

Вы считаете, что из события с номером i можно было предвидеть событие с номером j, если верны оба условия:

  • ai < aj;
  • наибольший общий делитель ai и aj отличен от 1.

Цепочка событий, где каждое следующее можно было предвидеть из предыдущего, вы называете заговором.

Докажите всем, что ваша теория заговора не является лишь теорией — найдите заговор, состоящий из наибольшего количества событий.

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

В первой строке содержится целое число n (1 ≤ n ≤ 106) — количество событий.

Во второй строке содержится n целых чисел a1, a2, ..., an (1 ≤ aj ≤ 2·106) —параметры событий.

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

В первой строке выведите целое число k (1 ≤ k ≤ n)  — максимально возможный размер заговора.

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

В случае, если заговоров максимального размера несколько, выведите любой из них.

Примеры
Входные данные
5
1 2 3 4 5
Выходные данные
2
2 4
Входные данные
8
8 7 10 3 6 5 3 11
Выходные данные
4
4 5 1 3
Входные данные
3
2 2 2
Выходные данные
1
1
Примечание

Первый тестовый пример

Последовательность [2;4] является заговором, так как из события a2 = 2 можно предсказать a4 = 4:

  • 2 < 4;
  • ( — наибольший общий делитель).

Второй тестовый пример

Последовательность [4;5, 1, 3] является заговором, так как:

  • a4 = 4;
  • a5 = 6: 3 < 6, ;
  • a1 = 8: 6 < 8, ;
  • a3 = 10: 8 < 10, .

Третий тестовый пример

В данном примере заговор из двух любых событий невозможен, так как все ai равны между собой.

В то же время любое событие формально является заговором само по себе, поэтому размер ответа всегда не менее 1.