#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10;
const int mod=1e9+7;
int n,m;
string a,b;
signed main(){
ios::sync_with_stdio(false);cin.tie(0);
cin>>n>>a>>b;
int cnt1=0,cnt2=0;
vector<int>v;
for(int i=0;i<n;i++){
if(a[i]=='1')cnt1++;
if(b[i]=='1')cnt2++;
if(a[i]!=b[i]){
if(a[i]=='1')v.push_back(1);
else v.push_back(2);
}
}
if(cnt1!=cnt2){
cout<<"-1\n";
return 0;
}
cnt1=cnt2=0;
for(auto x:v){
if(x==1)cnt1++,cnt2=max(cnt2-1,0ll);
else cnt2++,cnt1=max(cnt1-1,0ll);
}
cout<<cnt1+cnt2<<'\n';
}
1451A - Subtract or Divide | 1B - Spreadsheet |
1177A - Digits Sequence (Easy Edition) | 1579A - Casimir's String Solitaire |
287B - Pipeline | 510A - Fox And Snake |
1520B - Ordinary Numbers | 1624A - Plus One on the Subset |
350A - TL | 1487A - Arena |
1520D - Same Differences | 376A - Lever |
1305A - Kuroni and the Gifts | 1609A - Divide and Multiply |
149B - Martian Clock | 205A - Little Elephant and Rozdil |
1609B - William the Vigilant | 978B - File Name |
1426B - Symmetric Matrix | 732B - Cormen --- The Best Friend Of a Man |
1369A - FashionabLee | 1474B - Different Divisors |
1632B - Roof Construction | 388A - Fox and Box Accumulation |
451A - Game With Sticks | 768A - Oath of the Night's Watch |
156C - Cipher | 545D - Queue |
459B - Pashmak and Flowers | 1538A - Stone Game |