#include<bits/stdc++.h>
using namespace std;
const int maxn=1000010;
char A[maxn],B[maxn];
int n,q[maxn],l=1,r;
int main() {
	scanf("%d%s%s",&n,A+1,B+1);
	if(!strcmp(A+1,B+1)) return puts("0"),0;
	int cl=n,ans=0;
	for(int i=n;i;i--) if(B[i]^B[i-1]) {
		while(cl&&(cl>i||A[cl]!=B[i])) cl--;
		if(!cl) return puts("-1"),0;
		while(l<=r&&q[l]>=r-l+1+i) l++;
		if(cl<i) q[++r]=cl;
		ans=max(ans,r-l+1);
	}
	printf("%d\n",ans+1);
}
