#include<bits/stdc++.h>
using namespace std;
int main(){
string s1, s2;
int l1,l2;
cin>>l1>>l2>>s1>>s2;
vector<vector<int>>f(s1.length()+1,vector<int>(s2.length()+1,0));
for(int i=1;i<=s1.length();i++)
for(int j=1;j<=s2.length();j++){
f[i][j]=max(f[i-1][j],f[i][j-1]);
if(s1[i-1]==s2[j-1])f[i][j]=max(f[i][j],f[i-1][j-1]+1);
}
cout<<f[s1.length()][s2.length()]<<endl;
}