#include <bits/stdc++.h>
long long MOD = 1e9 + 7;
using namespace std;
int main() {
  long long n, t;
  cin >> n >> t;
  long long a[200010], x[200010], b[200010];
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) {
    cin >> x[i];
    x[i]--;
    if ((i > 0 && x[i] < x[i - 1]) || x[i] < i) {
      cout << "No";
      return 0;
    }
  }
  int c[200010] = {};
  for (int i = 0; i < n; i++) {
    long long temp = x[i];
    c[x[i]] = 1;
    if (temp == i) {
      if (i > 0)
        b[i] = max(a[i] + t, b[i - 1] + 1);
      else
        b[i] = a[i] + t;
      if (i < n - 1 && b[i] >= a[i + 1] + t) {
        cout << "No";
        return 0;
      }
    } else {
      if (i > 0)
        b[i] = max(a[i + 1] + t, b[i - 1] + 1);
      else
        b[i] = a[i + 1] + t;
    }
    if (i < n - 1 && c[i] && b[i] >= a[i + 1] + t) {
      cout << "No";
      return 0;
    }
  }
  cout << "Yes" << endl;
  for (int i = 0; i < n; i++) {
    printf("%lld ", b[i]);
  }
  return 0;
}
