#include <bits/stdc++.h>
using namespace std;
int t[100002], a[100002], b[100002];
bool calc(int ind) {
  if (ind == 0) return true;
  bool ans = false;
  for (int i = 0; i <= 3; i++)
    if ((i | t[ind + 1]) == a[ind] && (i & t[ind + 1]) == b[ind]) {
      t[ind] = i;
      return calc(ind - 1);
    }
  return false;
}
int main() {
  int n;
  bool ans;
  cin >> n;
  for (int i = 1; i < n; i++) cin >> a[i];
  for (int i = 1; i < n; i++) cin >> b[i];
  if ((a[n - 1] < b[n - 1]) || (a[n - 1] == 2 && b[n - 1] == 1))
    ans = false;
  else {
    t[n - 1] = a[n - 1], t[n] = b[n - 1];
    ans = calc(n - 2);
    if (ans == false) {
      t[n - 1] = b[n - 1], t[n] = a[n - 1];
      ans = calc(n - 2);
    }
    if (a[n - 1] == 3 && b[n - 1] == 0) {
      if (ans == false) {
        t[n - 1] = 2, t[n] = 1;
        ans = calc(n - 2);
      }
      if (ans == false) {
        t[n - 1] = 1, t[n] = 2;
        ans = calc(n - 2);
      }
    }
  }
  if (!ans)
    cout << "NO";
  else {
    cout << "YES" << endl;
    for (int i = 1; i <= n; i++) cout << t[i] << " ";
  }
  return 0;
}
