#include <bits/stdc++.h>
using namespace std;
int n, flag;
int a[100005], b[100005], t[100005];
int main() {
  cin >> n;
  for (int i = 1; i <= n - 1; i++) cin >> a[i];
  for (int i = 1; i <= n - 1; i++) cin >> b[i];
  memset(t, -1, sizeof(t));
  for (int i = 0; i <= 3; i++) {
    t[1] = i;
    int num = 0;
    for (int j = 2; j <= n; j++) {
      for (int k = 0; k <= 3; k++)
        if (((k | t[j - 1]) == a[j - 1]) && ((k & t[j - 1]) == b[j - 1]))
          t[j] = k;
    }
    for (int i = 1; i <= n; i++)
      if (t[i] != -1) num++;
    if (num == n) break;
  }
  for (int i = 1; i <= n; i++)
    if (t[i] == -1) {
      printf("NO");
      return 0;
    }
  printf("YES\n");
  for (int i = 1; i <= n; i++) printf("%d ", t[i]);
  return 0;
}
