B. Навыки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Лёша играет в недавно вышедшую новую версию легендарной игры hacknet. В этой версии был добавлен механизм навыков. Теперь каждый игровой персонаж обладает ровно n навыками. Каждый навык представляется одним неотрицательным целым числом ai — текущим уровнем навыка. Все навыки имеют одинаковый максимальный уровень A.

Одновременно с навыками был введён всеобщий рейтинг всех игроков. Игроки ранжируются по так называемой Силе. Сила игрока считается как сумма следующих величин:

  • Количество навыков, которыми персонаж владеет в совершенстве (т.е. таких, что ai = A), умноженное на коэффициент cf.
  • Минимальный текущий уровень среди всех навыков (min ai), умноженный на коэффициент cm.

Сейчас у Лёши есть m хакнетианских денежных единиц, которые он готов потратить. Каждая денежная единица позволяет увеличить текущий уровень любого навыка на 1 (если его уровень еще не максимален). Помогите ему потратить деньги таким образом, чтобы достичь как можно большего уровня Силы.

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

В первой строке через пробел записаны пять целых чисел n, A, cf, cm и m (1 ≤ n ≤ 100 000, 1 ≤ A ≤ 109, 0 ≤ cf, cm ≤ 1000, 0 ≤ m ≤ 1015).

Во второй строке записано ровно n целых чисел ai (0 ≤ ai ≤ A), разделённых пробелами, — текущие уровни навыков.

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

Сначала выведите максимальное значение Cилы, которое может получить персонаж.

Затем выведите n целых чисел — a'i (ai ≤ a'i ≤ A), уровни навыков, до которых следует развиться, чтобы достичь указанного значения Силы, при этом используя не более m денежных единиц. Если правильных ответов несколько — выведите любой.

Примеры
Входные данные
3 5 10 1 5
1 3 1
Выходные данные
12
2 5 2
Входные данные
3 5 10 1 339
1 3 1
Выходные данные
35
5 5 5
Примечание

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

Во втором тесте нужно увеличить уровни всех навыков до максимума.