#include <bits/stdc++.h>
using namespace std;
#define ref(i,x,y)for(int i=x;i<=y;++i)
const int N=1000010;
int n,m,p[N],q[N],f[N],L,R,M,ans,fg;string a,b;
int main(){
	cin>>n>>a>>b;a=" "+a;b=" "+b;
	ref(i,1,n)fg|=(a[i]!=b[i]);
	if(!fg){puts("0");return 0;}
	ref(i,1,n)if(b[i]!=b[i-1])p[++m]=i;
	for(int i=m,j=n;i>0&&j>0;q[i--]=j--)
		while(j>p[i]||j&&a[j]!=b[p[i]])
			f[i]|=(a[j]!=b[p[i]]),j--;
	if(!q[1]){puts("-1");return 0;}q[m+1]=N;
	ref(i,1,m)if(!f[i])q[i]=min(p[i],q[i+1]-1);
	ref(i,1,m){L=i,R=m+1;
		while(L<R)M=(L+R)>>1,(q[M]-M>=p[i]-i)?R=M:L=M+1;
		ans=max(ans,L-i);
	}
	cout<<ans+1<<endl;
}