Задача C. Набор сотрудников

Автор:М. Спорышев   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:256 Мб
Выходной файл:output.txt  

Условие

Молодой программист Вася недавно написал очень популярное и полезное веб-приложение, которое привлекло внимание спонсоров.

Теперь у Васи есть много денег, и он может основать свою компанию! Но для этого ему нужны сотрудники. Вася хочет чтобы у него в компании было два отдела. В первом отделе программисты будут заниматься разрабатыванием и тестированием новых идей, во втором - внедрением надежных и протестированных разработок первого отдела в приложение Васи.

Вася дал объявление о наборе сотрудников в каждый отдел и сейчас он имеет на руках список желающих. Каждый желающий указал, в какой отдел он хочет идти работать, либо указал, что готов работать в любом отделе. Тем не менее, Вася может нанять любого желающего только в один из отделов.

Каждому человеку из списка Вася поставил в соответствие некоторое целое число, которое характеризует полезность данного человека для компании. Теперь Вася хочет нанять сотрудников в оба отдела своей компании, так чтобы суммарная их полезность была максимально возможной.

Однако сотрудникам надо платить зарплату, а количество денег у Васи строго ограничено, поэтому он заранее указал количество сотрудников, которое он может нанять в каждый отдел.

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

Формат входного файла

Первая строка входного файла содержит целые числа N, M, K  — количество желающих работать у Васи в компании, количество сотрудников, которое может нанять Вася в первый и второй отдел соответственно.

Вторая строка содержит N целых чисел ai  — полезность желающего с номером i.

Третья строка содержит N целых чисел di, имеющих значения 1,2 либо 0  — 1, если i-й желающий хочет работать в первом отделе, 2  — во втором, либо 0  — в обоих.

Формат выходного файла

В первой строке входного файла требуется вывести N1  — количество сотрудников, нанятых в первый отдел и N1 целых чисел  — номера желающих, нанятых в данный отдел. Желающие пронумерованы начиная с 1.

В первой строке входного файла требуется вывести N2  — количество сотрудников, нанятых во второй отдел и N2 целых чисел  — номера желающих, нанятых в данный отдел.

Если существует несколько решений, выведите любое из них.

Ограничения

1 ≤ N, M, K ≤ 100000.

1 ≤ ai ≤ 104.

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

Входной файл (input.txt) Выходной файл (output.txt)
1
1 1 1
123
1
1 1
0
2
2 1 1
123 145
1 1
1 2
0

0.037s 0.008s 15