#include <iostream>
#include <vector>

using namespace std;

void recursort(int l, int r, vector<int> &arr, vector<pair<int, int>> &ans){
    if (l!=r){
        int mid=(l+r)/2;
        recursort(l, mid, arr, ans);
        recursort(mid+1, r, arr, ans);
        if (arr[mid]>arr[mid+1]){
            swap(arr[mid], arr[mid+1]);
            pair<int, int> aboba;
            aboba.first=mid+1;
            aboba.second=mid+2;
            ans.push_back(aboba);
        }
    }
}


int main(){
    int n;
    cin>>n;
    vector<int> arr(n);
    for (int i=0; i<n; i++){
        cin>>arr[i];
    }
    vector<pair<int, int>> ans={};
    for (int i=0; i<n; i++){
        recursort(0, n-1, arr, ans);
    }
    cout<<ans.size()<<endl;
    for (int i=0; i<ans.size(); i++){
        cout<<ans[i].first<<" "<<ans[i].second<<endl;
    }
}