Виталий записался на курс Advanced Useless Algorithms. Курс состоит из \(n\) заданий. Виталий подсчитал, что до задания \(i\) у него есть \(a_i\) часов на выполнение, начиная с дня записи на курс. То есть, дедлайн до задания \(i\) составляет \(a_i\) часов. Массив \(a\) отсортирован по возрастанию, другими словами, номера заданий соответствуют порядку сдачи заданий.
Виталий все делает добросовестно, поэтому он хочет выполнить каждое задание на \(100\) процентов, или больше. Изначально его уровень выполнения по каждому заданию равен \(0\) процентов.
У Виталия есть \(m\) опций подготовки, каждая опция может быть использована не более одного раза. Опция \(i\) характеризуется тремя целыми числами: \(e_i, t_i\) и \(p_i\). Если Виталий использует \(i\)-ю опцию, то через \(t_i\) часов (с текущего момента) он улучшит выполнение задания \(e_i\) на \(p_i\) процентов.
Например, пусть Виталию предстоит выполнить \(3\) задания. Пусть массив \(a\) имеет вид: \(a = [5, 7, 8]\). Допустим, Виталию доступны \(5\) опций: \([e_1=1, t_1=1, p_1=30]\), \([e_2=2, t_2=3, p_2=50]\), \([e_3=2, t_3=3, p_3=100]\), \([e_4=1, t_4=1, p_4=80]\), \([e_5=3, t_5=3, p_5=100]\).
Тогда если Виталий будет готовиться следующим образом, он сможет выполнить все вовремя:
- Виталий выбирает опцию \(4\). Тогда через \(1\) час он выполнит задание \(1\) на \(80\) процентов. До дедлайна задания \(1\) ему остается ещё \(4\) часа.
- Виталий выбирает опцию \(3\). Тогда через \(3\) часа он полностью выполнит задание \(2\). До дедлайна задания \(1\) у него остается ещё \(1\) час, а до дедлайна задания \(3\) ему остаётся \(4\) часа.
- Виталий выбирает опцию \(1\). Тогда через \(1\) час он выполнит задание \(1\) на \(110\) процентов, то есть успеет выполнить задание \(1\) как раз к дедлайну.
- Виталий выбирает опцию \(5\). Тогда \(2\) часа он будет выполнять задание \(3\), и через еще \(1\) час Виталий полностью выполнит задание \(3\).
Таким образом, Виталий полностью и вовремя сумел пройти курс, использовав \(4\) опции.
Помогите Виталию — выведите опции, по которым Виталию следует выполнить задания в нужном порядке. Обратите внимание: каждая опция может быть использована не более одного раза. Если существует несколько возможных ответов, разрешается вывести любой.
Выходные данные
Для каждого набора входных данных выведите в первой строке число \(k\), означающие что за \(k\) опций Виталий сможет выполнить каждое задание на \(100\) процентов или больше вовремя. Опции не должны повторяться. Либо выведите -1, если Виталий не имеет возможности выполнить все задания вовремя.
Если ответ существует, то в следующей строке выведите \(k\) различных целых чисел от \(1\) до \(m\) — номера опций в нужном порядке. Если существует несколько ответов, разрешается вывести любой из них.