#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define V vector<long long>
#define VV vector<vector<long long>>
#define VVV vector<vector<vector<long long>>>
#define P pair<ll,ll>
#define rep(i,n) for(ll (i)=0;(i)<(n);++(i))
#define per(i,n) for(ll (i)=(n)-1;(i)>=0;--(i))
#ifdef LOCAL
#define debug(x) cerr<<__LINE__<<": "<<#x<<"="<<x<<endl;
#define debugALL(x) cerr<<__LINE__<<": "<<#x<<"=";for(auto i=(x).begin();i!=--(x).end();i++)cerr<<*i<<" ";cerr<<*--(x).end()<<endl;
#else
#define debug(x) true
#define debugALL(x) true
#endif
using namespace std;

int main(){
    ll n;
    cin>>n;
    string s,t;
    cin>>s>>t;
    V a,b;
    rep(i,n){
        if(s[i]=='0')a.emplace_back(i);
        if(t[i]=='0')b.emplace_back(i);
    }
    if(a.size()!=b.size()){
        cout<<-1<<endl;
        return 0;
    }
    ll ans=0;
    rep(i,a.size())if(a[i]!=b[i])ans++;
    cout<<ans<<endl;
}

#include <bits/stdc++.h>
using namespace std;
#define ll long long 

int main()
{
    ll int n,a=0,b=0,c=0,d=0,e=0,f=0,g=0,x=0,y=0,z=0,c1=0,c2=0,k=0,l=0;
    cin>>n;
    string s,t;
    cin>>s>>t;
    for(ll int i=0;i<n;i++)
    {
        if(s[i]=='1'){a++;}
        if(s[i]=='0'){b++;}
        if(t[i]=='1'){c++;}
        if(t[i]=='0'){d++;}
    }
    if(a==c&&b==d)
    {
        // for(ll int i=0;i<n;i++)
        // {
        //     if(s[i]=='0'){e++;}
        //     if(t[i]=='0'){f++;}
        //     if(f>e)
        //     {
        //         g=1;
        //         c1=i;
        //         break;
        //     }
        // }
        // for(ll int i=n-1;i>=0;i--)
        // {
        //     if(s[i]=='0'){x++;}
        //     if(t[i]=='0'){y++;}
        //     if(y>x)
        //     {
        //         z=1;
        //         c2=i;
        //         break;
        //     }
        // }
        // if(z==1)
        // {
        //     for(ll int i=c2;i>=0;i--)
        //     {
        //         if(t[i]=='0')
        //         {
        //             k++;
        //         }
        //     }
        //     cout<<k;
        // }
        // else if(g==1)
        // {
        //     for(ll int i=c1;i<n;i++)
        //     {
        //         if(t[i]=='0')
        //         {
        //             k++;
        //         }
        //     }
        //     cout<<k;
        // }
        // else if(z==0&&g==0)
        // {
        //     cout<<0;
        // }
        // else
        // {
            for(ll int i=0;i<n;i++)
            {
                if(s[i]=='0'){x++;}
                if(t[i]=='0'){y++;}
                if(y>x&&t[i]=='0')
                {
                    k++;
                }
                // cout<<k<<" "<<i<<" || ";
            }
            for(ll int i=n-1;i>=0;i--)
            {
                if(s[i]=='0'){e++;}
                if(t[i]=='0'){f++;}
                if(f>e&&t[i]=='0')
                {
                    k++;
                }
                // cout<<k<<" "<<i<<" || ";
            }
            cout<<k;
        // }
    }
    else
    {
        cout<<-1;
    }
}