#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int, int>;
const int N = 1e5 + 20;
int n, x, a[N], b[N], ans;
set<pair<pii, int>> st;
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    x ^= a[i];
  }
  for (int i = 0; i < n; i++) {
    cin >> b[i];
    if (a[i] != b[i]) st.insert({{b[i], a[i]}, i});
  }
  while ((int)st.size()) {
    set<pair<pii, int>>::iterator it;
    it = st.lower_bound({{x, -1}, -1});
    if (it != st.end() && it->F.F == x) {
      pii p = it->F;
      swap(x, p.second);
      st.erase(it);
    } else {
      auto p = *st.begin();
      st.erase(p);
      swap(x, p.F.second);
      st.insert(p);
    }
    ans++;
    if (ans > 3 * n) return cout << "-1\n", 0;
  }
  cout << ans << '\n';
}
