#include <bits/stdc++.h>
using namespace std;
int a, b, c, d, n, t, k = 0, sum1, sum2;
int y[1000006], fix[1000006], l[100006], r[1000006], z[1000006];
vector<int> x[1006];
pair<int, int> e[1000006];
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> l[i];
    if (l[i] >= i) {
      cout << "NO";
      return 0;
    }
  }
  for (int i = 1; i <= n; i++) {
    cin >> r[i];
    if (r[i] >= n - i + 1) {
      cout << "NO";
      return 0;
    }
    if (r[i] + l[i] >= n) {
      cout << "NO";
      return 0;
    }
  }
  for (int i = 1; i <= n; i++) {
    x[n - l[i] - r[i]].push_back(i);
  }
  for (int i = 1; i <= n; i++) {
    if (k == 0) {
      t = i;
      while (x[t].size() == 0) {
        t++;
      }
      if (x[t].size() < t - i + 1) {
        cout << "NO";
        return 0;
      }
      fix[t] = 1;
      k = x[t].size();
    }
    e[i].first = x[t][k - 1];
    e[i].second = t;
    k--;
    if (i > t || t > n) {
      cout << "NO";
      return 0;
    }
  }
  sort(e + 1, e + n + 1);
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j < i; j++) {
      if (e[j].second > e[i].second) sum1++;
    }
    for (int j = i + 1; j <= n; j++) {
      if (e[j].second > e[i].second) sum2++;
    }
    if (sum1 != l[i]) {
      cout << "NO";
      return 0;
    }
    if (sum2 != r[i]) {
      cout << "NO";
      return 0;
    }
    sum1 = 0;
    sum2 = 0;
  }
  cout << "YES" << endl;
  for (int i = 1; i <= n; i++) {
    cout << e[i].second << " ";
  }
}
