#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,ans;
char s[2005],t[2005];
int dp[2005],vis[2005];
int add(int x,int y){return (x+y<n)?x+y:x+y-n;}
int mins(int x,int y){return (x>=y)?x-y:x-y+n;}
void solve()
{
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<=n;j++)dp[j]=0,vis[j]=0;
		for(int j=0;j<n;j++)
		{
			if(s[j]=='0')continue;
			int cnt=0;
			int r;
			for(r=add(j,1);s[r]=='0';r=add(r,1))cnt++;
			if(i>=cnt)continue;
			cnt-=i;
			int l=add(j,i+1);
			for(int k=l,u=1;k!=r;k=add(k,1),u++)
			{
				if(u>1)vis[k]=vis[mins(k,1)];
				if(t[k]!=s[add(j,u)])vis[k]=u;
				dp[cnt-u]=max(dp[cnt-u],vis[k]);
			}
		}
		int sum=0,ans2;
		for(int j=0;j<n;j++)if(s[j]!=t[add(j,i)])sum++;
		ans2=100000;
		for(int j=0;j<=n;j++)ans2=min(ans2,2*j+2*dp[j]+i);
		ans=min(ans,ans2+sum);
	}
}
int main()
{
	ans=1000000000;
	scanf("%s%s",t,s);
	n=strlen(s);
	int ok=0;
	for(int i=0;i<n;i++)if(s[i]=='1')ok=1;
	if(ok==0)
	{
		for(int i=0;i<n;i++)if(t[i]=='1')ok=1;
		if(ok)printf("-1\n");
		else printf("0\n");
		return 0;
	}
	solve();
	for(int i=0;i<n/2;i++)swap(s[i],s[n-1-i]),swap(t[i],t[n-1-i]);
	solve();
	printf("%d\n",ans);
	return 0;
}