#include <bits/stdc++.h>
using namespace std;
FILE* _f;
int _w;
const int N = 3e5 + 5;
int n, m;
int a[N], pos[N];
int opa[N * 5], opb[N * 5], cntop;
void add(int u, int v) {
  ++cntop;
  opa[cntop] = u;
  opb[cntop] = v;
  swap(a[opa[cntop]], a[opb[cntop]]);
  swap(pos[a[opa[cntop]]], pos[a[opb[cntop]]]);
}
int main() {
  _w = scanf("%d", &n);
  m = n >> 1;
  for (int i = 1; i <= n; i++) {
    _w = scanf("%d", &a[i]);
    pos[a[i]] = i;
  }
  for (int l = m, r = m + 1; l > 1; l--, r++) {
    if (a[l] != l) {
      if (pos[l] > m) {
        add(1, pos[l]);
      }
      add(pos[l], n);
      add(l, n);
    }
    if (a[r] != r) {
      if (pos[r] <= m) {
        add(n, pos[r]);
      }
      add(1, pos[r]);
      add(1, r);
    }
  }
  if (a[1] != 1) {
    add(1, n);
  }
  printf("%d\n", cntop);
  for (int i = 1; i <= cntop; i++) {
    printf("%d %d\n", opa[i], opb[i]);
  }
  return 0;
}
