#include #include using namespace std; int main(){ int n; cin >> n; vector a(n), b(n); for(int i = 0; i < n; i++){ cin >> a[i]; } for(int i = 0; i < n; i++){ cin >> b[i]; } int a_size = a.size(), b_size = b.size(); vector> dp(a.size() + 1, vector(b_size + 1, 0)); for(int i = 1; i <= a_size; i++){ for(int j = 1; j <= b_size; j++){ if(a[i - 1] == b[j - 1]) { dp[i][j] = dp[i - 1][j - 1] + 1; } else{ dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]); } } } cout << dp[a_size][b_size] << endl; return 0; }