#include<bits/stdc++.h>
using namespace std;
using Int = long long;

template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;}
template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;}

//INSERT ABOVE HERE
signed main(){
  string a,b;
  cin>>a>>b;
  Int n=a.size();

  if(a==b){
    cout<<0<<endl;
    return 0;
  }
  if(b==string(n,'0')){
    cout<<-1<<endl;
    return 0;
  }

  vector<Int> lf(n,n),ri(n,n);
  for(Int i=0;i<n;i++){
    for(Int j=0;j<n;j++){
      if(b[(j+n-i)%n]=='1') chmin(lf[j],i);
      if(b[(j+n+i)%n]=='1') chmin(ri[j],i);
    }
  }

  Int ans=3*n;
  for(Int i=0;i<n;i++){
    vector<Int> dp(n,0);
    for(Int j=0;j<n;j++)
      if(lf[j]>i&&a[j]!=b[(j+n-i)%n]) chmax(dp[lf[j]-1],ri[j]);
    for(Int j=n-1;j>0;j--) chmax(dp[j-1],dp[j]);
    
    Int tmp=3*n;
    for(Int j=0;j<n;j++) chmin(tmp,(max(j-i,(Int)0)+dp[j])*2);
    tmp+=i;
    for(Int j=0;j<n;j++) tmp+=a[j]!=b[(j+n-i)%n];
    chmin(ans,tmp);
  }
  
  for(Int i=0;i<n;i++){
    vector<Int> dp(n,0);
    for(Int j=0;j<n;j++)
      if(ri[j]>i&&a[j]!=b[(j+n+i)%n]) chmax(dp[ri[j]-1],lf[j]);
    for(Int j=n-1;j>0;j--) chmax(dp[j-1],dp[j]);
    
    Int tmp=3*n;
    for(Int j=0;j<n;j++) chmin(tmp,(max(j-i,(Int)0)+dp[j])*2);
    tmp+=i;
    for(Int j=0;j<n;j++) tmp+=a[j]!=b[(j+n+i)%n];
    chmin(ans,tmp);
  }

  cout<<ans<<endl;
  return 0;
}
