#include<bits/stdc++.h>
using namespace std;
#define nn 3000009
char s[nn],t[nn];int n;
int from[nn];
#define err {puts("-1");exit(0);}
int main()
{
	scanf("%d",&n);
	scanf("%s%s",s+1,t+1);
	if(s==t) 
	{
		puts("0");
		exit(0);
	}
	
	int p=n;
	for(int i=n;i>=1;i--)
	{
		if(p>i) p=i;
		while(p) if(t[i]==s[p]) break;else p--;
		if(!p) err;
		from[i]=p;
	}
	
	int ans=0;
	deque<int> dq;int rig=0;
	from[n+1]=1324564;
	for(int i=n;i>=1;i--)
	{
		if(t[i]!=t[i+1])
		{
			if(i>=from[i+1])
            {
                rig--;
				dq.push_front(from[i+1]-rig-1);
                while(dq.back()+rig>=i) dq.pop_back();
                dq.push_back(i-rig);
            }
            else
			{
				dq.clear();
				if(from[i]!=i) dq.push_back(i-rig);
			}
            ans=max(ans,(int)dq.size());
		}
	}
	cout<<ans;
	return 0;
}