#include<iostream>
#include <climits>
using namespace std;
int n,ans;
int a[100005];
int b[100005];
int c[100005];
int dp[100005];
int f[100005];
int main(){
cin>>n;
for(int i = 1;i<=n;i++){
cin>>a[i];
c[a[i]] = i;
}
for(int i = 1;i<=n;i++){
cin>>b[i];
b[i] = c[b[i]];
}
for(int i = 1;i<=n;i++){
f[i] = INT_MAX;
}
f[0] = INT_MIN;
for(int i = 1;i<=n;i++){
*lower_bound(f+1,f+n+1,b[i]) = b[i];
}
cout<<lower_bound(f+1,f+n+2,INT_MAX)-f-1;
}