#include<bits/stdc++.h>
#define maxn 1000006
using namespace std;

int n,q[maxn],ql=1,qr;
char s[maxn],t[maxn];

int main(){
	scanf("%d",&n);
	scanf("%s%s",s+1,t+1);
	if(strcmp(s+1,t+1)==0){
		puts("0");
		return 0;
	}
	int pos=n,ans=0;
	for(int i=n;i>=1;i--){
		if(t[i] == t[i-1]) continue;
		pos = min(pos , i);
		for(;pos && t[i] != s[pos];pos--);
		if(!pos){ puts("-1");return 0; }
		for(;ql<=qr && q[ql] - (qr-ql) > i;ql++);
		q[++qr] = pos;
		if(i^pos) ans = max(ans , qr-ql+1);
	}
	printf("%d\n",ans+1);
}