#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
int N, a[maxn], b[maxn];
bool check() {
  static int A[maxn], B[maxn];
  memcpy(A, a, sizeof A);
  memcpy(B, b, sizeof B);
  sort(A + 1, A + N + 1);
  sort(B + 1, B + N + 1);
  for (int i = 1; i <= N; ++i)
    if (A[i] != B[i]) return false;
  return true;
}
int main() {
  scanf("%d", &N);
  for (int i = 1; i <= N; ++i) scanf("%d", a + i), a[N + 1] ^= a[i];
  for (int i = 1; i <= N; ++i) scanf("%d", b + i), b[N + 1] ^= b[i];
  ++N;
  if (!check()) {
    puts("-1");
    return 0;
  }
  int ans = 0;
  for (int i = 1; i < N; ++i) ans += a[i] != b[i];
  if (ans) ans += a[N] == b[N];
  printf("%d\n", ans);
  return 0;
}
