Задача №1137. Каждому по компьютеру!

В новом учебном году на занятия в компьютерные классы Дворца Творчества Юных пришли учащиеся, которые были разбиты на N групп. В i-й группе оказалось Xi человек. Тут же перед директором встала серьезная проблема: как распределить группы по аудиториям. Во дворце имеется M N аудиторий, в j-й аудитории имеется Yj компьютеров. Для занятий необходимо, чтобы у каждого учащегося был компьютер и еще один компьютер был у преподавателя. Переносить компьютеры из одной аудитории в другую запрещается. Помогите директору!

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

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

На первой строке входного файла расположены числа N и M (1 N M 1000). На второй строке расположено N чисел — X1 , …, XN(1 Xi 1000 для всех 1 i N). На третьей строке расположено M чисел   Y1, ..., YM (1 ≤ Yi 1000 для всех 1 i ≤ M).

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

Выведите на первой строке число P - количество групп, которые удастся распределить по аудиториям. На второй строке выведите распределение групп по аудиториям – N чисел, i-е число должно соответствовать номеру аудитории, в которой должна заниматься i-я группа. (Нумерация как групп, так и аудиторий, начинается с 1). Если i-я группа осталась без аудитории, i-е число должно быть равно 0. Если допустимых распределений несколько, выведите любое из них.

Примеры
Входные данные
3 3
1 2 3
3 4 2
Выходные данные
3
3 1 2 
Сдать: для сдачи задач необходимо войти в систему