#include<bits/stdc++.h>
using namespace std;
int n,m;
string s,t;
int l[200010],r[200010];
int main()
{
	cin>>n>>m;
	cin>>s>>t;
	for(int j=0;j<n;j++)
	{
		if(t[0]==s[j])
		{
			l[0]=j;
			break;
		}
	}
	for(int i=1;i<m;i++)
	{
		for(int j=l[i-1]+1;j<n;j++)
		{
			if(t[i]==s[j]){
				l[i]=j;
				break;
			}
		}
	}
	for(int j=n-1;j>=0;j--)
	{
		if(t[m-1]==s[j])
		{
			r[m-1]=j;
			break;
		}
	}
	for(int i=m-2;i>=0;i--)
	{
		for(int j=r[i+1]-1;j>=0;j--)
		{
			if(t[i]==s[j])
			{
				r[i]=j;
				break;
			}
		}
	}
	int ans=0;
	for(int i=0;i<=m-2;i++)
	{
		ans=max(ans,r[i+1]-l[i]);
	}
	cout<<ans;
} 
