#include<bits/stdc++.h>
using namespace std;
const int maxn=2005;
int n,L[maxn],R[maxn],bj[maxn],mx,mi,ans; int tota,totb,len,que[maxn];
char a[maxn],b[maxn];
int cmpL(int a,int b) { return L[a]<L[b]; } int cmpR(int a,int b) { return R[a]<R[b]; }
int main() {
    scanf("%s%s",a+1,b+1); n=strlen(a+1); ans=2e9;
    for (int i=1;i<=n;++i) { if (a[i]=='1') tota++; if (b[i]=='1') totb++; } if (!totb) { if (!tota) return puts("0"),0; return puts("-1"),0; }
    for(int i=1;i<=n;++i){int ind=i,cnt=0;while(b[ind]!='1'){ind--;cnt++;if(ind==0)ind=n;}L[i]=cnt;ind=i;cnt=0;while(b[ind]!='1'){ind++;cnt++;if (ind==n+1)ind=1;}R[i]=cnt;}
    for (int i=1;i<=n;++i) {
      int ind,sum=0; if (i==1) ind=1; else ind=n-i+2; for (int j=1;j<=n;++j) bj[j]=0; for (int j=1;j<=n;++j) { if (a[ind]!=b[j]) sum++,bj[ind]=1; ind++; if (ind>n) ind=1; }
      int cnt; if (i==1) cnt=0; else cnt=n-i+1; len=0; for (int j=1;j<=n;++j) if (bj[j] && L[j]>cnt) que[++len]=j;
      sort(que+1,que+1+len,cmpR);mx=0;mi=2e9;if(len>0)mi=min(mi,R[que[len]]*2+cnt);for(int j=len;j>=1;--j){mx=max(mx,L[que[j]]);if(j>1)mi=min(mi,R[que[j-1]]*2+mx*2-cnt);}
      if (len>0) mi=min(mi,mx*2-cnt); if (!len) mi=cnt; ans=min(ans,mi+sum); cnt=i-1; len=0; for (int j=1;j<=n;++j) if (bj[j] && R[j]>cnt) que[++len]=j;
      sort(que+1,que+1+len,cmpL);mx=0;mi=2e9;if(len>0)mi=min(mi,L[que[len]]*2+cnt);for(int j=len;j>=1;--j){mx=max(mx,R[que[j]]);if (j>1) mi=min(mi,L[que[j-1]]*2+mx*2-cnt); }
      if (len>0) mi=min(mi,mx*2-cnt); if (!len) mi=cnt; ans=min(ans,mi+sum);
    } 
    printf("%d",ans);
    return 0;
}