//T1
#include<iostream>
#include<cstdio>
#include<map>
#define N 100100
using namespace std;

int n,a[N],b[N],ca[N],cb[N],fa[N],xa,xb,ans,tt;
map<int,int>mm;

int ff(int u){return u==fa[u]?u:fa[u]=ff(fa[u]);}
inline void in(int u){if(!mm.count(u)) mm[u]=++tt;}

int main()
{
	int i,j;
	cin>>n;
	for(i=1;i<=n;i++) scanf("%d",&a[i]),xa^=a[i];
	for(i=1;i<=n;i++) scanf("%d",&b[i]),xb^=b[i];
	for(i=1;i<=n;i++)
	{
		if(a[i]!=b[i])
		{
			ans++;
			in(a[i]),in(b[i]);
			ca[mm[a[i]]]++;
			cb[mm[b[i]]]++;
		}
	}
	if(!ans)
	{
		puts("0");
		return 0;
	}
	in(xa),in(xb);
	ca[mm[xa]]++;
	cb[mm[xb]]++;
	for(i=1;i<=tt;i++)
	{
		if(ca[i]!=cb[i])
		{
			puts("-1");
			return 0;
		}
	}
	for(i=1;i<=tt;i++) fa[i]=i;
	for(i=1;i<=n;i++)
	{
		if(a[i]!=b[i])
		{
			fa[ff(mm[a[i]])]=ff(mm[b[i]]);
		}
	}
	if(xa!=xb) fa[ff(mm[xa])]=ff(mm[xb]);
	for(i=1;i<=tt;i++) if(i==ff(i)) ans++;
	cout<<ans-1;
}