Монокарп — тьютор группы из \(n\) студентов. Он связывается с ними через конференцию в популярном мессенджере.
Сегодня у Монокарпа был напряженный день — его просили переслать его группе огромное количество объявлений, поэтому ему пришлось написать в конференции очень много сообщений. Монокарп достаточно хорошо знает студентов из группы, поэтому понимает, какое сообщение является важным для каждого студента: Монокарп хочет, чтобы студент \(i\) прочитал сообщение \(m_i\).
Конечно же, никто не будет читать все сообщения. Поэтому Монокарп решил прикрепить некоторые из них. Монокарп может прикрепить любое количество сообщений, и если он хочет, чтобы какое-то сообщение было прочитано, ему стоит прикрепить его — в противном случае никто такое сообщение не прочитает.
К сожалению, даже если сообщение прикреплено, некоторые студенты все равно могут его пропустить. Для каждого студента \(i\) Монокарп знает, что этот студент прочитает не более \(k_i\). Предположим, что Монокарп прикрепляет \(t\) сообщений; если \(t \le k_i\), то \(i\)-й студент прочитает все прикрепленные сообщения; но если \(t > k_i\), \(i\)-й студент выберет ровно \(k_i\) случайных прикрепленных сообщений (все различные подмножества размера \(k_i\) множества прикрепленных сообщений равновероятны) и прочитает только их.
Монокарп хочет максимизировать математическое ожидание количества студентов, которые прочитают необходимые им сообщения (это соответствует количеству таких индексов \(i\), что студент \(i\) прочитает сообщение \(m_i\)). Помогите ему выбрать, какие сообщения прикрепить!
Выходные данные
В первой строке выведите одно целое число \(t\) (\(1 \le t \le 2 \cdot 10^5\)) — количество сообщений, которые должен прикрепить Монокарп. Во второй строке выведите \(t\) различных целых чисел \(c_1\), \(c_2\), ..., \(c_t\) (\(1 \le c_i \le 2 \cdot 10^5\)) — номера сообщений, которые необходимо прикрепить. Номера сообщений можно выводить в любом порядке.
Если оптимальных ответов несколько, выведите любой из них.