#include using namespace std; using LL=long long; using ULL=unsigned long long; #define rep(i,n) for(int i=0; i<(n); i++) int N; vector S,T; vector X[4][4]={ { {}, {-1}, {-1}, {-1} }, { {-1}, {}, {0,1}, {1,0} }, { {-1}, {1,0}, {}, {0,1} }, { {-1}, {0,1}, {1,0}, {} } }; vector solve(){ vector res; rep(i,N){ int s=S[i]*2+S[i+N]; int t=T[i]*2+T[i+N]; auto a=X[s][t]; if(a==vector({-1})) return {-1}; for(auto p:a) res.push_back(p+i); } return res; } int main(){ cin>>N; S.resize(N*2); T.resize(N*2); { string Sbuf,Tbuf; cin>>Tbuf>>Sbuf; rep(i,N*2) S[i]=Sbuf[i]-'0'; rep(i,N*2) T[i]=Tbuf[i]-'0'; } bool ok=false; vector ans; rep(t,2){ ans=solve(); if(ans.size()==1 && ans[0]==-1){ rep(i,N) T[i+N]^=T[i]; } else{ if(t) ans.push_back(0); ok=true; break; } } if(!ok) cout<<-1<