#include<cstdio>
#include<algorithm>
int m[100010];
int posm[100010];
int to[100010];
int out[200010][2];
int k=0;
void swap(int& a,int& b)
{
    a=a^b;
    b=b^a;
    a=a^b;
}
int main()
{
    int n,a;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a);
        posm[i+1]=a;
        m[a]=i+1;
    }
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a);
        to[a]=i+1;
    }
    int l,r;
    for(int i=1;i<=n;i++)
    {
        l=m[i],r=to[i];
        if(l>r) swap(l,r);
        if(l==r) continue;
        out[k][0]=l;out[k][1]=r;
        k++;
        if(l<r-2)
        {
            out[k][0]=l+1;out[k][1]=r-1;
            k++;
        }
        l=m[i],r=to[i];
        swap(posm[l],posm[r]);
        swap(m[posm[l]],m[posm[r]]);
    }
    printf("%d\n",k);
    for(int i=0;i<k;i++)
    {
        printf("%d %d\n",out[i][0],out[i][1]);
    }
}
