func_code_string: #include <bits/stdc++.h>   using namespace std;   static inline void canhazfast() {     ios_base::sync_with_stdio(false);     cin.tie(nullptr);     cout.tie(nullptr);   }   template <typename T>   T gcd(T a, T b) {     return b == 0 ? a : gcd(b, a % b);   }   template <typename T>   T extgcd(T a, T b, T &x, T &y) {     T x0 = 1, y0 = 0, x1 = 0, y1 = 1;     while (b) {       T q = a / b;       a %= b;       swap(a, b);       x0 -= q * x1;       swap(x0, x1);       y0 -= q * y1;       swap(y0, y1);     }     x = x0;     y = y0;     return a;   }   static inline int ctz(unsigned x) { return __builtin_ctz(x); }   static inline int ctzll(unsigned long long x) { return __builtin_ctzll(x); }   static inline int clz(unsigned x) { return __builtin_clz(x); }   static inline int clzll(unsigned long long x) { return __builtin_clzll(x); }   static inline int popcnt(unsigned x) { return __builtin_popcount(x); }   static inline int popcntll(unsigned long long x) {     return __builtin_popcountll(x);   }   static inline int bsr(unsigned x) { return 31 ^ clz(x); }   static inline int bsrll(unsigned long long x) { return 63 ^ clzll(x); }   int main() {     canhazfast();     static long long a[200016], x[200016], b[200016];     int n;     long long t, lb;     cin >> n >> t;     for (int i = 1; i <= n; ++i) cin >> a[i];     for (int i = 1; i <= n; ++i) cin >> x[i];     if (x[n] != n) return cout <<  No , 0;     lb = a[n];     b[n] = a[n] + n;     for (int i = n - 1; i > 0; --i) {       b[i] = b[i + 1] - 1;       if (x[i] == i)         b[i] = lb - 1;       else if (x[i] != x[i + 1] || b[i] < lb)         return cout <<  No , 0;       lb = a[i];     }     cout <<  Yes n ;     for (int i = 1; i <= n; ++i) cout << b[i] + t <<    ;     return 0;   }   