#include <cstdio>
#include <vector>

using namespace std;

int main()
{
    int n, q;
    scanf("%d", &n);
    vector<int> S(n);
    for(auto it=S.begin(); it!=S.end(); it++){
        scanf("%d", &(*it));
    }
    S.push_back(-1);
    scanf("%d", &q);
    int sum=0;
    for(int i=0; i<q; i++){
        int qq;
        scanf("%d", &qq);
        *S.end()=qq;
        auto it=S.begin();
        for(; *it!=qq; it++){
        }
        sum+=it==S.end() ? 0 : 1;
    }
    printf("%d\n", sum);
    return 0;
}
#include <iostream>
#include <vector>
using namespace  std;

void fnInput(vector<int> &rviTrg, vector<int> &rviSch)
{
  int iTrgCnt;
  cin >> iTrgCnt;

  rviTrg.resize(iTrgCnt + 1);
  for (int i = 0; i < iTrgCnt; i++)
    cin >> rviTrg[i];

  int iSchCnt;
  cin >> iSchCnt;

  rviSch.resize(iSchCnt);
  for (int i = 0; i < iSchCnt; i++)
    cin >> rviSch[i];
}

void fnLinSch(vector<int> &rviTrg, const vector<int> &cnrviSch, int &riFnd)
{
  size_t zMaxSiz = rviTrg.size() - 1;
  for (size_t zi = 0; zi < cnrviSch.size(); zi++)
  {
    rviTrg[zMaxSiz] = cnrviSch[zi];
    size_t zj = 0;
    while (rviTrg[zj] != cnrviSch[zi])
      zj++;
    if (zj != zMaxSiz)
      riFnd++;
  }
}

void fnResult(int a_iFnd)
{
  cout << a_iFnd << endl;
}

int main()
{
  cin.tie(0);
  ios::sync_with_stdio(false);

  vector<int> viTrg, viSch;
  int iFnd = 0;

  fnInput(viTrg, viSch);
  fnLinSch(viTrg, viSch, iFnd);
  fnResult(iFnd);

  return 0;
}