#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char a[2005],b[2005];
int n,pre[2005],nxt[2005],ans=1e9,mx[2005];
void solve(){
	for(int i=0;i<n;i++){
		pre[i]=nxt[i]=0;
		for(int p=0;p<n;pre[i]++,p++) if(b[(i-p+n)%n]=='1') break;
		for(int p=0;p<n;nxt[i]++,p++) if(b[(i+p)%n]=='1') break;
	}
	for(int i=0;i<n;i++){
		int tot=0;
		memset(mx,0,sizeof(mx));
		for(int p=0;p<n;p++) if(a[p]!=b[(p+i)%n])
			tot++,mx[pre[p]]=max(mx[pre[p]],nxt[p]-i);
		int mn=1e9,cnt=0;
		for(int p=n-1;~p;p--)
			mn=min(mn,cnt+p),cnt=max(cnt,mx[p]);
		ans=min(ans,2*mn+i+tot);
	}
}
int main(){
	scanf("%s%s",a,b);
	n=strlen(a);
	int suma=0,sumb=0;
	for(int i=0;i<n;i++) suma+=a[i]-'0',sumb+=b[i]-'0';
	if(!sumb&&!suma) return puts("0"),0;
	if(!sumb) return puts("-1"),0;
	solve();
	for(int i=0;i+i<n;i++) swap(a[i],a[n-i-1]),swap(b[i],b[n-i-1]);
	solve();
	printf("%d",ans);
	return 0;
}