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

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

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

Например, строка параметров -1 59 23 -1 -1 -1 будет означать, что задача будет запущена каждый день в 23:59:00, 23:59:01, 23:59:02, ..., 23:59:59 (всего 60 раз).

Секунды, минуты и часы нумеруются с нуля, а числа, месяцы и дни недели — с единицы. Первым днём недели считается понедельник.

Также есть один случай, который следует рассмотреть отдельно. Если в строке параметров указаны (то есть отличны от  - 1) и день недели, и число, то для запуска задачи требуется совпадение только с одним из этих двух параметров (при этом, разумеется, должны выполняться и остальные параметры). Например, строка параметров 0 0 12 6 3 7 означает, что задача будет запущена как в субботу, второго июля, так и в воскресенье, третьего июля 2016 года, ровно в полдень.

Также необходимо помнить о существовании високосных лет. Год называется високосным, если его номер делится на 400, либо он не делится на 100, но при этом делится на 4. В каждом високосном году в феврале 29 дней вместо 28.

Текущее время будет представляться как количество секунд, которое прошло с 00:00:00 1 января 1970 года (четверг).

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

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

В первой строке задано шесть целых чисел s, m, h, day, date и month (0 ≤ s, m ≤ 59, 0 ≤ h ≤ 23, 1 ≤ day ≤ 7, 1 ≤ date ≤ 31, 1 ≤ month ≤ 12). Каждое число также может быть равно  - 1. Гарантируется, что существует бесконечно много моментов времени, в которые данная задача должна быть поставлена на выполнение.

В следующей строке задано целое число n (1 ≤ n ≤ 1000) — количество моментов времени, для которых нужно решить задачу. В следующих n строках записано по одному целому числу ti (0 ≤ ti ≤ 1012).

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

Необходимо вывести n строк, i-я из них должна содержать наименьшее время, строго большее ti, в которое должна быть выполнена задача.

Примеры
Входные данные
-1 59 23 -1 -1 -1
6
1467372658
1467417540
1467417541
1467417598
1467417599
1467417600
Выходные данные
1467417540
1467417541
1467417542
1467417599
1467503940
1467503940
Входные данные
0 0 12 6 3 7
3
1467372658
1467460810
1467547200
Выходные данные
1467460800
1467547200
1468065600
Примечание

Если от полуночи первого января 1970 года отсчитать 1467372658 секунд, то получится 11:30:58 первого июля 2016 года.