#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
int a[100010],b[100010];
int f[100010];
int c[100010],d[100010];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
c[i]=i;
}
for(int i=1;i<=n;i++){
cin>>b[i];
d[i]=a[b[i]];
}
int len=0;
for(int i=1;i<=n;i++){
if(d[i]>f[len]){
f[++len]=d[i];
}
else{
int p=lower_bound(f+1,f+len+1,d[i])-f;
f[p]=d[i];
}
}
cout<<len;
return 0;
}