Резиновый рюкзак
시간 제한2초메모리 제한1024 MB
고른 물건들의 총 부피에서 V0를 뺀 압력을 모든 물건이 견딜 수 있을 때, 총 가치를 최대로 하는 부분집합을 고른다.
문제
Турист Геннадий готовится к очередному походу. Его старый, видавший виды рюкзак уже износился, да и вещей в него помещается не так уж много. Не стоит и говорить о том, что все возможные задачи об этом рюкзаке он уже прорешал.
Новый рюкзак Геннадия сделан из сверхпрочной резины. Если резину не растягивать, то в этот рюкзак можно положить предметов суммарным объемом не более кубических сантиметров. Однако, в этот рюкзак можно положить, запихать или в крайнем случае утрамбовать и больше предметов. Проблема в том, что если суммарный объем предметов будет равен , то на все эти предметы будет действовать давление .
Среди различных предметов, которые Геннадий хочет взять в поход, есть прочные, а есть и хрупкие. Например, внешняя клавиатура для ноутбука Геннадия не сможет вынести того же, что выдерживала проверенная годами палатка. Однако, даже хрупкие предметы, как показывает практика, могут быть ценными в походе. Поэтому Геннадий для каждого предмета, помимо занимаемого им объема , определил его стоимость как меру того, насколько он хочет взять его в поход, а также вычислил максимальное давление , которое он может выдержать.
Таким образом, перед Геннадием встала непростая задача --- как выбрать предметы таким образом, чтобы они, находясь все вместе в рюкзаке, смогли выдержать образующееся давление, и при этом стоимость получившегося набора была максимальна?
Геннадий --- турист бывалый, поэтому написанная им программа менее, чем за полсекунды справилась с этой задачей. А вы сможете повторить его достижение?
입력
В первой строке входного файла находятся два целых числа () и () --- число предметов и начальный объем рюкзака.
Следующие строк содержат тройки целых чисел , и --- объем, стоимость и максимальное давление, выдерживаемое -тым предметом. , , .
출력
В первой строке выходного файла выведите число предметов , которые необходимо взять, и максимальную достигнутую стоимость.
Во второй строке выведите чисел --- номера предметов, которые необходимо взять. Предметы нумеруются, начиная с единицы, в том порядке, в котором они даны во входном файле.
Если существует несколько вариантов ответа, выведите один из них.