#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-7, PI = acos(-1);
const int inf = 0x3f3f3f3f;
const long long int linf = 0x3f3f3f3f3f3f3f3fLL;
const int MAX_N = 2000;
int onde[MAX_N + 5];
int arr[MAX_N + 5];
int N;
vector<pair<int, int> > v;
void pf() {
  for (int i = (1), __ = (N); i <= __; i++) printf("%d ", arr[i]);
  puts("");
}
int main(int argc, char const* argv[]) {
  int k;
  scanf("%d", &N);
  for (int i = (1), __ = (N); i <= __; i++) {
    scanf("%d", &arr[i]);
  }
  for (int i = (1), __ = (N); i <= __; i++) {
    scanf("%d", &k);
    onde[k] = i;
  }
  int ans = 0;
  for (int i = N; i >= 1; i--) {
    k = arr[i];
    if (i < onde[k]) {
      int p = i;
      for (int j = i + 1; j <= N && onde[k] != p; j++) {
        if (onde[arr[j]] <= p) {
          v.push_back(make_pair(p, j));
          ans += abs(j - p);
          swap(arr[j], arr[p]);
          p = j;
        }
      }
    }
  }
  printf("%d\n", ans);
  printf("%d\n", (int)v.size());
  for (int i = (0), __ = (v.size()); i < __; i++) {
    printf("%d %d\n", v[i].first, v[i].second);
  }
  return 0;
}
