#include <bits/stdc++.h>
using namespace std;
double esp = 1e-12;
#pragma comment(linker, "/STACK:1024000000,1024000000")
const double PI = acos(-1.0);
const int INF = 0x3f3f3f3f;
const long long int MOD = 1000000007;
int s1[2100], s2[2100], p[2100];
int op[2010000][2];
int main() {
  int n;
  scanf("%d", &n);
  for (int x = 1; x <= n; x++) scanf("%d", &s1[x]);
  for (int x = 1; x <= n; x++) {
    scanf("%d", &s2[x]);
    p[s2[x]] = x;
  }
  long long int ans = 0;
  int k = 0;
  int f = 0, f1 = 0;
  while (1) {
    f = 0;
    for (int x = 1; x <= n; x++)
      if (s1[x] != s2[x]) {
        f = 1;
        f1 = 0;
        if (x < p[s1[x]]) {
          for (int y = x + 1; y <= p[s1[x]]; y++)
            if (p[s1[y]] <= x) {
              f1 = 1;
              swap(s1[x], s1[y]);
              k++;
              op[k][0] = x;
              op[k][1] = y;
              ans += (x > y) ? (x - y) : (y - x);
              break;
            }
        } else {
          for (int y = p[s1[x]]; y <= x - 1; y++)
            if (p[s1[x]] >= x) {
              f1 = 1;
              swap(s1[x], s1[y]);
              k++;
              op[k][0] = x;
              op[k][1] = y;
              ans += (x > y) ? (x - y) : (y - x);
              break;
            }
        }
        if (f1 == 1) break;
      }
    if (f == 0) break;
  }
  printf("%I64d\n%d\n", ans, k);
  for (int x = 1; x <= k; x++) printf("%d %d\n", op[x][0], op[x][1]);
  return 0;
}
