#include <bits/stdc++.h>
using namespace std;
long long binpow(long long a, long long b) {
  a = a % 1000000007;
  long long res = 1;
  while (b > 0) {
    if (b & 1) res *= a % 1000000007;
    a = a * a % 1000000007;
    b = b >> 1;
  }
  return res;
}
void speedup() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
}
int dx[] = {1, -1, 2, 2, -2, -2, 1, -1};
int dy[] = {2, 2, 1, -1, 1, -1, -2, -2};
int bfs(int sx, int sy, int desx, int desy) {
  int vis[9][9];
  int d[9][9];
  for (int i = 1; i <= 8; i++) {
    for (int j = 1; j <= 8; j++) {
      vis[i][j] = 0;
      d[i][j] = 0;
    }
  }
  vis[sx][sy] = 1;
  queue<pair<int, int> > q;
  q.push(pair<int, int>(sx, sy));
  while (!q.empty()) {
    pair<int, int> top = q.front();
    q.pop();
    for (int i = 0; i < 8; i++) {
      int tx = top.first + dx[i];
      int ty = top.second + dy[i];
      if (tx >= 1 && tx <= 8 && ty >= 1 && ty <= 8 && vis[tx][ty] == 0) {
        vis[tx][ty] = 1;
        d[tx][ty] = d[top.first][top.second] + 1;
        q.push(pair<int, int>(tx, ty));
      }
    }
  }
  return d[desx][desy];
}
int main() {
  speedup();
  int n;
  cin >> n;
  int a[n], l[n], r[n];
  for (int i = 0; i < n; i++) cin >> l[i];
  for (int i = 0; i < n; i++) cin >> r[i];
  for (int i = 0; i < n; i++) a[i] = n - l[i] - r[i];
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < i; j++) {
      l[i] -= (a[j] > a[i]);
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      r[i] -= (a[j] > a[i]);
    }
  }
  for (int i = 0; i < n; i++) {
    if (l[i] != 0 || r[i] != 0) {
      cout << "NO\n";
      return 0;
    }
  }
  cout << "YES\n";
  for (int i = 0; i < n; i++) cout << a[i] << " ";
  cout << "\n";
}
