#include<cstdio>
#include<iostream>
using namespace std;
#define N 1001
int dp[N][N];
int main(){
int m , n ;
scanf("%d%d",&m,&n);
char S1[N];
char S2[N];
scanf("%s%s",S1,S2);
for(int i = 0 ; i <= n ; ++i){
for(int j = 0 ; j <= m ; ++j){
if(i == 0 || j == 0){
dp[i][j] == 0;
continue;
}
if(S1[i-1] == S2[j-1]){
dp[i][j] = dp[i-1][j-1] +1 ;
}else{
dp[i][j] = max(dp[i-1][j] , dp[i][j-1]);
}
}
}
printf("%d\n",dp[n][m]);
}



京公网安备 11010502036488号