D. Призы, призы и еще раз призы
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
стандартный ввод
вывод
стандартный вывод

Вася, как и многие другие люди, любит участвовать в различных розыгрышах и лотереях. Сейчас он собирает упаковки от известного шоколадного батончика «Юпитер». По условиям акции на каждой упаковке написано целое число — количество баллов, которое прибавляется к балансу участника при покупке этого батончика. Накопив некоторое количество баллов, участник акции может прийти в центр выдачи призов и обменять их на призы, при этом стоимость выбранного приза просто вычитается из баланса игрока.

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

В акции участвовали следующие призы (они отсортированы в порядке увеличения стоимости):

  • кружка (стоимость a баллов),
  • полотенце (стоимость b баллов),
  • сумка (стоимость c баллов),
  • велосипед (стоимость d баллов),
  • автомобиль (стоимость e баллов).

Теперь Вася хочет вспомнить, какие же призы он получил. Вам известна последовательность p1, p2, ..., pn, где pi означает сколько баллов получил Вася за i-ый батончик. Последовательность баллов задана в хронологическом порядке. Также вы знаете числа a, b, c, d, e. Ваша задача — найти сколько и каких призов Вася получил, а также сколько баллов у него осталось после завершения всех операций.

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

В первой строке записано единственное целое число n (1 ≤ n ≤ 50) — количество упаковок от батончиков, за которые Вася получал баллы. Во второй строке записаны целые числа p1, p2, ..., pn (1 ≤ pi ≤ 109), разделенные пробелами. В третьей строке записано 5 чисел a, b, c, d, e (1 ≤ a < b < c < d < e ≤ 109) — стоимости призов.

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

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

Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.

Примеры
Входные данные
3
3 10 4
2 4 10 15 20
Выходные данные
1 1 1 0 0 
1
Входные данные
4
10 4 39 2
3 5 10 11 12
Выходные данные
3 0 1 0 3 
0
Примечание

В первом примере после первого батончика Вася получил 3 балла и сразу же обменял 2 из них на кружку. Затем после второго батончика Вася выиграл сумку, а после третьего — полотенце. В конце у Васи осталось 3 - 2 + 10 - 10 + 4 - 4 = 1 баллов.