#include<bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN=2e5;
int n,a[MAXN+5],b[MAXN+5];
int f[MAXN+5];
int g[MAXN+5];
int rnk[10005];
int ans=0;
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
cin>>b[i];
}
for(int i=1;i<=n;i++)
{
rnk[a[i]]=i;
}
for(int i=1;i<=n;i++)
{
g[i]=0;
}
rnk[0]=n+1;
for(int i=1;i<=n;i++)
{
int l=1,r=n,len;
while(l<=r)
{
int mid=l+r>>1;
if(rnk[g[mid]]>=rnk[b[i]])
{
len=mid;
r=mid-1;
}
else
{
l=mid+1;
}
}
f[i]=len;
g[len]=b[i];
ans=max(ans,f[i]);
}
cout<<ans;
return 0;
}