3. Заправка
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На заправке имеются N колонок, в начальный момент все они свободны.

Периодически на заправку заезжают машины, которые встают в общую очередь. Как только одна из колонок освобождается, первая машина из очереди заезжает на неё и заправляется. Заправка занимает T секунд.

После этого машина отъезжает в сторону, чтобы освободить колонку, и водитель отправляется в очередь к кассе (так как онлайн-оплата снова не работает). Касса на заправке единственная, оплата в ней занимает V секунд.

Для каждой машины определите момент времени, когда она выедет с заправки. Можно считать, что все перемещения машин и водителей происходят мгновенно.

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

В первой строке записаны четыре целых числа через пробел:

  • F (1 ≤ F ≤ 105) – количество машин.
  • N (1 ≤ N ≤ 10) – количество колонок.
  • T (1 ≤ T ≤ 100) – время заправки одной машины.
  • V (1 ≤ V ≤ 100) – время оплаты в кассе.

В следующих F строках записано по одному числу X (1 ≤ X ≤ 109) — времена приезда машин. Все времена различны и даны в порядке возрастания.

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

Для каждой машины выведите время её отъезда с заправки.

Система оценки

Подзадача 1 (до 25 баллов): F ≤ 100, X ≤ 105

Подзадача 2 (до 36 баллов): F ≤ 1000, X ≤ 109

Подзадача 3 (до 39 баллов): F ≤ 105, X ≤ 109

Баллы за один тест в разных подзадачах могут отличаться.

Примеры
Входные данные
4 2 10 100
1
2
500
510
Выходные данные
111
211
610
710
Входные данные
7 2 5 1
1
2
3
4
500
510
520
Выходные данные
7
8
12
13
506
516
526
Примечание

На Python 4 целых числа через пробел можно ввести так: f, n, t, v = map(int, input().split())