#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000 * 1000 + 100;
int x[maxn], y[maxn], n;
int get_LIS() {
  set<int> st;
  st.clear();
  for (int i = 1; i <= n; i++) {
    st.insert(y[i]);
    set<int>::iterator it = st.find(y[i]);
    if (it != st.begin()) st.erase(--it);
  }
  return st.size();
}
int main() {
  ios::sync_with_stdio(false);
  int an;
  cin >> n;
  for (int i = 0; i < n; i++) cin >> an, x[an] = i + 1;
  for (int i = 0; i < n; i++) cin >> an, y[x[an]] = i + 1;
  cout << get_LIS() << endl;
  return 0;
}
