#include <bits/stdc++.h>
using namespace std;
const int N = 2100;
int n, p[N], s[N];
int p1[N], p2[N], to[N], v[N];
int coins = 0, tot = 0;
vector<pair<int, int> > moves;
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &p[i]);
    p1[p[i]] = i;
  }
  for (int i = 1; i <= n; i++) {
    scanf("%d", &s[i]);
    p2[s[i]] = i;
  }
  for (int i = 1; i <= n; i++) {
    to[i] = p2[p[i]];
  }
  while (tot < n) {
    for (int i = 1; i <= n; i++) {
      if (!v[i]) {
        if (to[i] == i) {
          v[i] = 1;
          ++tot;
        } else if (to[i] > i) {
          int cur = i;
          for (int j = i + 1; j <= to[i]; j++) {
            if (to[j] <= cur) {
              moves.push_back(make_pair(cur, j));
              coins += abs(j - cur);
              swap(to[cur], to[j]);
              cur = j;
            }
          }
        } else {
          int cur = i;
          for (int j = i - 1; j >= to[i]; j--) {
            if (to[j] >= cur) {
              moves.push_back(make_pair(cur, j));
              coins += abs(j - cur);
              swap(to[cur], to[j]);
              cur = j;
            }
          }
        }
      }
    }
  }
  printf("%d\n%d\n", coins, (int)moves.size());
  for (__typeof(moves.begin()) it(moves.begin()); it != moves.end(); it++) {
    printf("%d %d\n", it->first, it->second);
  }
  return 0;
}
