#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  int a[n], b[n];
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  for (int j = 0; j < n; ++j) {
    cin >> b[j];
  }
  if (a[0] != 0 || b[n - 1] != 0) {
    cout << "NO" << endl;
    return 0;
  }
  vector<int> flag, flag2;
  for (int i = 0; i < n; ++i) {
    flag.push_back(a[i] + b[i]);
    flag2.push_back(a[i] + b[i]);
  }
  sort(flag2.begin(), flag2.end());
  flag2.erase(unique(flag2.begin(), flag2.end()), flag2.end());
  if (flag2[0] != 0) {
    cout << "NO" << endl;
    return 0;
  }
  int ans[n];
  memset(ans, 0, sizeof(ans));
  int t = flag2.size();
  int tt = t;
  for (int i = 0; i < tt; ++i) {
    for (int j = 0; j < n; ++j) {
      if (flag[j] == flag2[i]) {
        ans[j] = t;
      }
    }
    t--;
  }
  bool f = 0;
  for (int i = n - 1; i >= 0; i--) {
    int k = 0;
    for (int j = i; j >= 0; j--) {
      if (ans[j] > ans[i]) k++;
    }
    if (k != flag[i] - b[i]) {
      f = 1;
      break;
    }
  }
  if (!f) {
    for (int i = 0; i < n; i++) {
      int k = 0;
      for (int j = i; j < n; j++) {
        if (ans[j] > ans[i]) k++;
      }
      if (k != b[i]) {
        f = 1;
        break;
      }
    }
  }
  if (f) {
    cout << "NO" << endl;
  } else {
    cout << "YES" << endl;
    for (int i = 0; i < n; ++i) {
      cout << ans[i] << " ";
    }
  }
  return 0;
}
