#include <bits/stdc++.h>
using namespace std;
void solve() {
  int n;
  cin >> n;
  int l[n], r[n];
  for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
       i += 1 - 2 * ((0) > (n)))
    cin >> l[i];
  for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
       i += 1 - 2 * ((0) > (n)))
    cin >> r[i];
  pair<int, int> sum[n];
  for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
       i += 1 - 2 * ((0) > (n))) {
    sum[i].first = l[i] + r[i];
    sum[i].second = i;
  }
  int a[n];
  sort(sum, sum + n);
  int temp = n;
  int x = sum[0].first;
  for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
       i += 1 - 2 * ((0) > (n))) {
    if (sum[i].first == x) {
      a[sum[i].second] = temp;
    } else {
      temp--;
      x = sum[i].first;
      a[sum[i].second] = temp;
    }
  }
  bool can = true;
  for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
       i += 1 - 2 * ((0) > (n))) {
    int temp = a[i];
    int cnt1 = 0, cnt2 = 0;
    for (int j = i - 1; j >= 0; j--) {
      if (a[j] > temp) cnt1++;
    }
    if (cnt1 != l[i]) {
      can = false;
      break;
    }
    for (int j = i + 1; j < n; j++) {
      if (a[j] > temp) cnt2++;
    }
    if (cnt2 != r[i]) {
      can = false;
      break;
    }
  }
  if (can) {
    cout << "YES" << endl;
    for (__typeof(n) i = (0) - ((0) > (n)); i != (n) - ((0) > (n));
         i += 1 - 2 * ((0) > (n)))
      cout << a[i] << " ";
    cout << endl;
  } else {
    cout << "NO" << endl;
    return;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  t = 1;
  while (t--) {
    solve();
  }
}
