#include<bits/stdc++.h> using namespace std; const int maxn = 3000 + 10; int n,a[maxn],b[maxn],dp[maxn]; int main() { scanf("%d",&n); memset(dp,0,sizeof(dp)); for(int i = 1;i <= n;i ++) scanf("%d",&a[i]); for(int i = 1;i <= n;i ++) scanf("%d",&b[i]); for(int i = 1;i <= n;i ++) { int maxn = 0; for(int j = 1;j <= n;j ++) { if(a[i] > b[j]) maxn = max(maxn,dp[j]); if(a[i] == b[j]) dp[j] = maxn + 1; } } int ans = 0; for(int i = 1;i <= n;i ++) ans = max (ans,dp[i]); printf("%d",ans); return 0; }