#include <bits/stdc++.h>
using namespace std;
int a[100005];
int b[100005];
bool flag = false;
vector<int> ans;
int n;
void dfs(int prev, int j) {
  if (j == n - 1) {
    if (!flag) {
      printf("YES\n");
      flag = true;
      for (int i = 0; i < ans.size(); i++) printf("%d ", ans[i]);
    }
    return;
  }
  for (int i = 0; i <= 3; i++) {
    if ((i | prev) == a[j] && (i & prev) == b[j]) {
      ans.push_back(i);
      dfs(i, j + 1);
      ans.pop_back();
    }
    if (flag) return;
  }
}
int main(void) {
  scanf("%d", &n);
  for (int i = 0; i < n - 1; i++) {
    scanf("%d", &a[i]);
  }
  for (int i = 0; i < n - 1; i++) {
    scanf("%d", &b[i]);
  }
  for (int i = 0; i <= 3; i++) {
    ans.push_back(i);
    dfs(i, 0);
    ans.pop_back();
    if (flag) break;
  }
  if (!flag) {
    printf("NO");
  }
}
