#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using P = pair<ll, ll>;
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int N, M;
  cin >> N >> M;
  vector<int> S(N);
  vector<int> T(M);
  for (int i = 0; i < N; i++) {
    cin >> S.at(i);
  }
  for (int i = 0; i < M; i++) {
    cin >> T.at(i);
  }
  vector<vector<ll>> dp(2000 + 1, vector<ll>(2000 + 1));
  for (int i = 0; i <= N; ++i) {
    for (int j = 0; j <= M; ++j) {
      if (i == 0 || j == 0) {
        dp.at(i).at(j) = 1;
        continue;
      }
      if (S.at(i - 1) == T.at(j - 1)) {
        dp.at(i).at(j) = dp.at(i - 1).at(j - 1) +
                         count(S.begin(), S.begin() + i - 1, T.at(j - 1)) +
                         count(T.begin(), T.begin() + j - 1, S.at(i - 1)) + 1;
      } else {
        dp.at(i).at(j) =
            max(dp.at(i - 1).at(j) +
                    count(T.begin(), T.begin() + j - 1, S.at(i - 1)),
                dp.at(i).at(j - 1) +
                    count(S.begin(), S.begin() + i - 1, T.at(j - 1)));
      }
      cout << "::" << dp.at(i).at(j) << endl;
    }
  }
  cout << dp.at(N).at(M) << endl;
}
