if __name__=="__main__":
n,m = [int(x) for x in input().split()]
s1=list(input())
s2=list(input())
dp = [[0 for x in range(0,m+1)] for x in range(0,n+1)]
for i in range(1,n+1):
for j in range(1,m+1):
if s1[i-1]==s2[j-1]:
dp[i][j]=max(dp[i][j-1],dp[i-1][j])
dp[i][j]=max(dp[i][j], dp[i-1][j-1]+1)
else:
dp[i][j]=max(dp[i][j-1],dp[i-1][j])
print(dp[n][m])