#include <bits/stdc++.h>
using namespace std;
long long n;
long long n2;
vector<long long> p;
vector<long long> r;
long long m = 0;
vector<pair<long long, long long> > ans;
void kek(int i, int j) {
  ans.push_back(make_pair(i + 1, j + 1));
  assert(abs(i - j) >= n2);
  ++m;
  assert(i != j);
  r[p[i]] = j;
  r[p[j]] = i;
  swap(p[i], p[j]);
}
bool ok(int i, int j) { return abs(i - j) >= n2; }
int main() {
  cout << setprecision(20);
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n;
  n2 = n / 2;
  p = vector<long long>(n);
  r = vector<long long>(n);
  for (int i = 0; i < n; ++i) {
    long long x;
    cin >> x;
    --x;
    p[i] = x;
    r[x] = i;
  }
  for (int i = 0; i < n - 1; ++i) {
    long long k = r[i];
    if (k == i) continue;
    assert(k > i);
    if (ok(k, i)) {
      kek(k, i);
      continue;
    }
    if (i < n2) {
      if (k < n2) {
        kek(k, n - 1);
        kek(i, n - 1);
      } else {
        kek(k, 0);
        kek(0, n - 1);
        kek(n - 1, i);
        kek(k, 0);
      }
    } else {
      kek(k, 0);
      kek(0, i);
      kek(k, 0);
    }
  }
  assert(ans.size() < 5 * n);
  cout << ans.size() << endl;
  for (auto p : ans) {
    cout << p.first << " " << p.second << "\n";
  }
  return 0;
}
