1039_A. Timetable
There are two bus stops denoted A and B, and there n buses that go from A to B every day. The shortest path from A to B takes t units of time but some buses might take longer paths. Moreover, buses are allowed to overtake each other during the route.

At each station one can find a sorted list of moments of time when a bus is at this station. We denote this list as a_1 < a_2 < … < a_n for stop A and as b_1 < b_2 < … < b_n for stop B. The buses always depart from A and arrive to B according to the timetable, but the order in which the buses arrive may differ. Let's call an order of arrivals valid if each bus arrives at least t units of time later than departs.

It is known that for an order to be valid the latest possible arrival for the bus that departs at a_i is b_{x_i}, i.e. x_i-th in the timetable. In other words, for each i there exists such a valid order of arrivals that the bus departed i-th arrives x_i-th (and all other buses can arrive arbitrary), but there is no valid order of arrivals in which the i-th departed bus arrives (x_i + 1)-th.

Formally, let's call a permutation p_1, p_2, …, p_n valid, if b_{p_i} ≥ a_i + t for all i. Then x_i is the maximum value of p_i among all valid permutations.

You are given the sequences a_1, a_2, …, a_n and x_1, x_2, …, x_n, but not the arrival timetable. Find out any suitable timetable for stop B b_1, b_2, …, b_n or determine that there is no such timetable.

Input

The first line of the input contains two integers n and t (1 ≤ n ≤ 200 000, 1 ≤ t ≤ 10^{18}) — the number of buses in timetable for and the minimum possible travel time from stop A to stop B.

The second line contains n integers a_1, a_2, …, a_n (1 ≤ a_1 < a_2 < … < a_n ≤ 10^{18}), defining the moments of time when the buses leave stop A.

The third line contains n integers x_1, x_2, …, x_n (1 ≤ x_i ≤ n), the i-th of them stands for the maximum possible timetable position, at which the i-th bus leaving stop A can arrive at stop B. 

Output

If a solution exists, print "Yes" (without quotes) in the first line of the output.

In the second line print n integers b_1, b_2, …, b_n (1 ≤ b_1 < b_2 < … < b_n ≤ 3 ⋅ 10^{18}). We can show that if there exists any solution, there exists a solution that satisfies such constraints on b_i. If there are multiple valid answers you can print any of them.

If there is no valid timetable, print "No" (without quotes) in the only line of the output.

Examples

Input

3 10
4 6 8
2 2 3


Output

Yes
16 17 21 


Input

2 1
1 2
2 1


Output

No

Note

Consider the first example and the timetable b_1, b_2, …, b_n from the output.

To get x_1 = 2 the buses can arrive in the order (2, 1, 3). To get x_2 = 2 and x_3 = 3 the buses can arrive in the order (1, 2, 3). x_1 is not 3, because the permutations (3, 1, 2) and (3, 2, 1) (all in which the 1-st bus arrives 3-rd) are not valid (sube buses arrive too early), x_2 is not 3 because of similar reasons.
```python
def read():
    return list(map(int, input().split(' ')))
def fail():
    print('No')
    exit(0)

n, t = read()
aa = read()
xx = read()

res = [0] * n
prevX = 0
prevV = -10

for i in range(n):
    x = xx[i] - 1
    if x < prevX or x < i:
        fail()

    prevX = x
    res[i] = prevV = max(aa[i + 1] + t if x > i else aa[i] + t , prevV + 1)

for i in range(n):
    x = xx[i] - 1
    if x + 1 < n and res[x] >= aa[x + 1] + t:
        fail()

print('Yes')
print(*res)

```