#include <cstdio>

int a[120000], p[120000], r[120000], rev[120000];

int lr[240000], rr[240000], tr;

void swap (int i, int j)
{
	if (i > j) { int t = i; i = j; j = t; }
	if (i == j) return;
	lr[tr] = i;
	rr[tr++] = j;
	if (j - i > 2)
	{
		lr[tr] = i + 1;
		rr[tr++] = j - 1;
	}
	int x = rev[i];
	r[i] = i; rev[i] = i;
	r[x] = j; rev[j] = x;
}

int main ()
{
	int n; scanf ("%d", &n);

	int t;
	for (int i = 1; i <= n; ++i) scanf ("%d", a+i);
	for (int i = 1; i <= n; ++i) p[a[i]] = i;
	for (int i = 1; i <= n; ++i) { scanf ("%d", &t); r[i] = p[t]; }
	for (int i = 1; i <= n; ++i) rev[r[i]] = i;

//	for (int i = 1; i <= n; ++i) printf ("%d ", r[i]); printf ("\n");
//	for (int i = 1; i <= n; ++i) printf ("%d ", rev[i]); printf ("\n");

	for (int i = 1; i <= n; ++i)
	{
//		printf ("Swapping %d with %d\n", i, r[i]);
		swap (i, r[i]);
//		for (int i = 1; i <= n; ++i) printf ("%d ", r[i]); printf ("\n");
//		for (int i = 1; i <= n; ++i) printf ("%d ", rev[i]); printf ("\n");
	}

	printf ("%d\n", tr);
	for (int i = 0; i < tr; ++i) printf ("%d %d\n", lr[i], rr[i]);
	return 0;
}
