void solve(){
int N; cin >> N;
string S, T; cin >> S >> T;
string ret = "";
rep(i, 0, N) ret += (S[i] == T[i] ? "0" : "1");
int ans = 1e9;
// don't flip first
string tmp = ret;
int cnt = 0;
rep(i, 1, N){
if(tmp[i-1] == '1'){
cnt++;
tmp[i-1] = (tmp[i-1] == '1' ? '0' : '1');
tmp[i] = (tmp[i] == '1' ? '0' : '1');
if(i+1 < N) tmp[i+1] = (tmp[i+1] == '1' ? '0' : '1');
}
}
if(tmp[N-1] == '0') ans = min(ans, cnt);
// flip first
tmp = ret;
cnt = 1;
tmp[0] = (tmp[0] == '1' ? '0' : '1');
tmp[1] = (tmp[1] == '1' ? '0' : '1');
rep(i, 1, N){
if(tmp[i-1] == '1'){
cnt++;
tmp[i-1] = (tmp[i-1] == '1' ? '0' : '1');
tmp[i] = (tmp[i] == '1' ? '0' : '1');
if(i+1 < N) tmp[i+1] = (tmp[i+1] == '1' ? '0' : '1');
}
}
if(tmp[N-1] == '0') ans = min(ans, cnt);
if(ans == 1e9) ans = -1;
cout << ans << "\n";
}