#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<fstream>
#include<map>
#include<ctime>
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<bitset>
#include<functional>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define REP(i,l,r) for((i)=(l);(i)<=(r);++(i))
#define REP2(i,l,r) for((i)=(l);(i)!=(r);++(i))
using namespace std;
typedef long long LL;
typedef double ld;
const int MAX=200000+10;
int n;
int x[MAX],y[MAX];
int p1[MAX],p2[MAX],num[MAX];
vector<int> ne[MAX];
int hash[MAX];
int top=0;
int que[MAX];
void dfs(int u)
{
int i;
hash[u]=1;
que[++top]=u;
REP2(i,0,(int)ne[u].size())
{
int v=ne[u][i];
if(!hash[v])
dfs(v);
}
}
int Work(int i)
{
top=0;
dfs(i);
int j,ss=0;
REP(j,2,top)
if(x[ que[j] ] == x[ que[j-1] ] || y[ que[j] ] == y[ que[j-1] ] )
{
++ss;
swap(x[que[j]],y[que[j]]);
}
return min(ss,top-ss);
}
int main()
{
int i;
scanf("%d",&n);
REP(i,1,n)
scanf("%d",&x[i]);
REP(i,1,n)
scanf("%d",&y[i]);
REP(i,1,n)
{
if(x[i]==y[i])
continue;
if(p1[x[i]])
p2[x[i]]=i;
else p1[x[i]]=i;
if(p1[y[i]])
p2[y[i]]=i;
else p1[y[i]]=i;
num[x[i]]++;
num[y[i]]++;
}
REP(i,1,100000)
if(p1[i] && p2[i])
{
ne[p1[i]].pb(p2[i]);
ne[p2[i]].pb(p1[i]);
}
int ans=0;
REP(i,1,100000)
if(num[i]==1 && !hash[p1[i]])
ans+=Work(p1[i]);
REP(i,1,n)
{
if(x[i]==y[i])
continue;
if(hash[i])
continue;
ans+=Work(i);
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGN0aW1lPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxiaXRzZXQ+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksbCxyKSBmb3IoKGkpPShsKTsoaSk8PShyKTsrKyhpKSkKI2RlZmluZSBSRVAyKGksbCxyKSBmb3IoKGkpPShsKTsoaSkhPShyKTsrKyhpKSkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIExMOwp0eXBlZGVmIGRvdWJsZSBsZDsKCmNvbnN0IGludCBNQVg9MjAwMDAwKzEwOwoKaW50IG47CmludCB4W01BWF0seVtNQVhdOwppbnQgcDFbTUFYXSxwMltNQVhdLG51bVtNQVhdOwoKdmVjdG9yPGludD4gbmVbTUFYXTsKaW50IGhhc2hbTUFYXTsKCmludCB0b3A9MDsKaW50IHF1ZVtNQVhdOwoKdm9pZCBkZnMoaW50IHUpCnsKCWludCBpOwoJaGFzaFt1XT0xOwoJcXVlWysrdG9wXT11OwoJUkVQMihpLDAsKGludCluZVt1XS5zaXplKCkpCgl7CgkJaW50IHY9bmVbdV1baV07CgkJaWYoIWhhc2hbdl0pCgkJCWRmcyh2KTsKCX0KfQoKaW50IFdvcmsoaW50IGkpCnsKCXRvcD0wOwoJZGZzKGkpOwoJaW50IGosc3M9MDsKCVJFUChqLDIsdG9wKQoJCWlmKHhbIHF1ZVtqXSBdID09IHhbIHF1ZVtqLTFdIF0gfHwgeVsgcXVlW2pdIF0gPT0geVsgcXVlW2otMV0gXSApCgkJewoJCQkrK3NzOwoJCQlzd2FwKHhbcXVlW2pdXSx5W3F1ZVtqXV0pOwoJCX0KCXJldHVybiBtaW4oc3MsdG9wLXNzKTsKfQoKaW50IG1haW4oKQp7CglpbnQgaTsKCXNjYW5mKCIlZCIsJm4pOwoJUkVQKGksMSxuKQoJCXNjYW5mKCIlZCIsJnhbaV0pOwoJUkVQKGksMSxuKQoJCXNjYW5mKCIlZCIsJnlbaV0pOwoJUkVQKGksMSxuKQoJewoJCWlmKHhbaV09PXlbaV0pCgkJCWNvbnRpbnVlOwoJCWlmKHAxW3hbaV1dKQoJCQlwMlt4W2ldXT1pOwoJCWVsc2UgcDFbeFtpXV09aTsKCgkJaWYocDFbeVtpXV0pCgkJCXAyW3lbaV1dPWk7CgkJZWxzZSBwMVt5W2ldXT1pOwoKCQludW1beFtpXV0rKzsKCQludW1beVtpXV0rKzsKCX0KCVJFUChpLDEsMTAwMDAwKQoJCWlmKHAxW2ldICYmIHAyW2ldKQoJCXsKCQkJbmVbcDFbaV1dLnBiKHAyW2ldKTsKCQkJbmVbcDJbaV1dLnBiKHAxW2ldKTsKCQl9CglpbnQgYW5zPTA7CglSRVAoaSwxLDEwMDAwMCkKCQlpZihudW1baV09PTEgJiYgIWhhc2hbcDFbaV1dKQoJCQlhbnMrPVdvcmsocDFbaV0pOwoJUkVQKGksMSxuKQoJewoJCWlmKHhbaV09PXlbaV0pCgkJCWNvbnRpbnVlOwoJCWlmKGhhc2hbaV0pCgkJCWNvbnRpbnVlOwoJCWFucys9V29yayhpKTsKCX0KCWNvdXQ8PGFuczw8ZW5kbDsKCXJldHVybiAwOwp9