Имеются две остановки автобусов A и B, и известно, что в течение дня \(n\) автобусов совершают поездку от A до B. От остановки A до остановки B самым быстрым образом можно доехать за время \(t\), но можно ехать и дольше, при этом автобусы могут произвольным образом обгонять друг друга в процессе следования по маршруту.
На каждой из остановок можно прочитать упорядоченный список моментов времени, когда на эту остановку приходит автобус, обозначим как \(a_1 < a_2 < \ldots < a_n\) список для остановки A и как \(b_1 < b_2 < \ldots < b_n\) список для остановки B. Автобусы всегда отъезжают от остановки A и всегда прибывают на остановку B вовремя, но порядок прибытия автобусов может отличаться от порядка отправления. Будем называть порядок прибытия корректным, если для каждого автобуса время его прибытия хотя бы на \(t\) позже, чем время отправления.
Известно, что для соблюдения расписания автобус, отправляющийся в момент времени \(a_i\), должен приехать не позже, чем в момент времени \(b_{x_i}\), то есть \(x_i\)-м по счету. Иными словами, для каждого \(i\) существует такой корректный порядок прибытия автобусов, где \(i\)-й отправленный автобус прибывает \(x_i\)-м (а остальные — как угодно), но не существует корректного порядка, где \(i\)-й отправленный автобус прибывает \((x_i + 1)\)-м.
Формально, назовем перестановку \(p_1, p_2, \ldots, p_n\) корректной, если \(b_{p_i} \ge a_i + t\) для всех \(i\). Тогда \(x_i\) — максимальное значение \(p_i\) среди всех корректных перестановок.
Вам известны числа \(a_1, a_2, \ldots, a_n\) и \(x_1, x_2, \ldots, x_n\), но не известны времена прибытия автобусов. Найдите какое-нибудь подходящее расписание \(b_1, b_2, \ldots, b_n\), или определите, что такого расписания не существует.
Выходные данные
Если решение существует, в первой строке выведите слово «Yes» (без кавычек).
Во второй строке выведите \(n\) целых чисел \(b_1, b_2, \ldots, b_n\) (\(1 \leq b_1 < b_2 < \ldots < b_n \leq 3 \cdot 10^{18}\)). Можно показать, что если решение существует, то существует и решение, удовлетворяющее данному ограничению на значения \(b_i\). Если правильных ответов несколько, то разрешается вывести любой из них.
Если подходящего расписания не существует, выведите слово «No» (без кавычек) в единственной строке вывода.
Примечание
Рассмотрим первый пример и расписание \(b_1, b_2, \ldots, b_n\) из примера.
Чтобы получить \(x_1 = 2\) можно взять порядок прибытия автобусов \((2, 1, 3)\). Чтобы получить \(x_2 = 2\) и \(x_3 = 3\) можно выбрать порядок прибытия \((1, 2, 3)\). \(x_1\) не равно \(3\), потому что перестановки \((3, 1, 2)\) и \((3, 2, 1)\) (все возможные, в которых \(1\)-й автобус приезжает \(3\)-м по порядку) некорректны (некоторые автобусы приедут слишком рано), по тем же причинам \(x_2\) не равно \(3\).
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 10 4 6 8 2 2 3
|
Yes
16 17 21
|
|
2
|
2 1 1 2 2 1
|
No
|