#include <bits/stdc++.h>
using namespace std;
int n, ans, fl, a[120000], b[120000];
map<int, int> fa, cnt, vis;
int gfa(int x) { return x == fa[x] ? x : fa[x] = gfa(fa[x]); }
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", a + i);
    a[0] ^= a[i];
  }
  for (int i = 1; i <= n; ++i) {
    scanf("%d", b + i);
    b[0] ^= b[i];
  }
  for (int i = 0; i <= n; ++i) {
    ++cnt[a[i]];
    --cnt[b[i]];
  }
  for (auto i : cnt)
    if (i.second) {
      puts("-1");
      return 0;
    }
  for (int i = 0; i <= n; ++i) fa[a[i]] = a[i];
  fl = 1;
  for (int i = 1; i <= n; ++i) {
    if (a[i] != b[i]) {
      ans += (!vis[a[i]]) + (!vis[b[i]]);
      vis[a[i]] = vis[b[i]] = 1;
      ++ans;
      int x = gfa(a[i]), y = gfa(b[i]);
      if (x != y) {
        --ans;
        if (x == a[0]) fl = 0;
        fa[x] = y;
      }
    }
  }
  printf("%d\n", ans + fl - 1 - (a[0] != b[0]));
  return 0;
}
