#include <bits/stdc++.h>
using namespace std;
int p[300005];
int f[300005];
void swapp(int x, int y) {
  int v1 = p[x];
  int v2 = p[y];
  p[x] = v2;
  p[y] = v1;
  f[v1] = y;
  f[v2] = x;
}
int cnt;
vector<pair<int, int> > ans;
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> p[i];
    f[p[i]] = i;
  }
  int xxx = 0;
  while (cnt < n * 5 && xxx < 100) {
    xxx++;
    for (int i = 1; i <= n; i++) {
      if (p[i] == i && f[i] == i) continue;
      if (f[i] > n / 2 && i <= n / 2) {
        cnt += 3;
        ans.push_back({1, f[i]});
        swapp(f[i], 1);
        ans.push_back({1, n});
        swapp(1, n);
        ans.push_back({i, n});
        swapp(i, n);
      } else if (f[i] <= n / 2 && i > n / 2) {
        cnt += 3;
        ans.push_back({f[i], n});
        swapp(f[i], n);
        ans.push_back({1, n});
        swapp(1, n);
        ans.push_back({1, i});
        swapp(1, i);
      } else if (f[i] > n / 2) {
        cnt += 2;
        ans.push_back({1, f[i]});
        swapp(1, f[i]);
        ans.push_back({1, i});
        swapp(1, i);
      } else {
        cnt += 2;
        ans.push_back({f[i], n});
        swapp(f[i], n);
        ans.push_back({i, n});
        swapp(i, n);
      }
    }
  }
  cout << ans.size() << endl;
  for (int i = 0; i < ans.size(); i++) {
    cout << ans[i].first << " " << ans[i].second << "\n";
  }
  return 0;
}
