#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2100;
const int dx[5] = {0, 1, -1, 0, 0};
const int dy[5] = {0, 0, 0, -1, 1};
const double pi = acos(-1.0);
int n;
int a[MAXN], f[MAXN];
vector<pair<int, int> > ans;
void rel(long long &r) {
  r = 0;
  char t = getchar();
  while (!isdigit(t) && t != '-') t = getchar();
  long long sign = 1;
  if (t == '-') sign = -1;
  while (!isdigit(t)) t = getchar();
  while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
  r = r * sign;
}
void rei(int &r) {
  r = 0;
  char t = getchar();
  while (!isdigit(t) && t != '-') t = getchar();
  int sign = 1;
  if (t == '-') sign = -1;
  while (!isdigit(t)) t = getchar();
  while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
  r = r * sign;
}
int main() {
  rei(n);
  for (int i = 1; i <= n; i++) rei(a[i]);
  for (int i = 1; i <= n; i++) {
    int t;
    rei(t);
    f[t] = i;
  }
  for (int i = 1; i <= n; i++) a[i] = f[a[i]];
  long long tot = 0;
  for (int i = n; i >= 1; i--)
    if (a[i] == i)
      continue;
    else {
      int pos;
      for (int j = 1; j <= n; j++)
        if (a[j] == i) {
          pos = j;
          break;
        }
      int j = pos + 1;
      while (pos != i)
        if (a[j] <= pos) {
          ans.push_back(make_pair(j, pos));
          swap(a[j], a[pos]);
          tot += j - pos;
          pos = j;
          j++;
        } else
          j++;
    }
  printf("%I64d\n", tot);
  int len = ans.size();
  printf("%d\n", len);
  for (int i = 0; i <= len - 1; i++)
    printf("%d %d\n", ans[i].first, ans[i].second);
  return 0;
}
