//#define _GLIBCXX_DEBUG
//#pragma GCC optimize("O3")
//#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
//#define int long long
#define endl '\n'
#define fast ios_base::sync_with_stdio(false);cout.tie(nullptr);cin.tie(nullptr);
using namespace std;

void Bogdan(){
    int n;
    cin>>n;
    int a[n+1],b[n+1];
    b[0]=0;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        b[i]=a[i];
    }
    sort(b+1,b+n+1);
    vector<pair<int,int>> turn;
    for(int i=1;i<=n;i++){
        if(a[i]!=b[i]){
            int pos=0;
            for(int j=i+1;j<=n;j++){
                if(a[j]==b[i]){
                    pos=j;
                    break;
                }
            }
            turn.push_back({i,pos});
            for(int j=i;j<=(i+pos)/2;j++){
                swap(a[j],a[pos-(j)+i]);
            }
        }
    }
    cout<<turn.size()<<endl;
    for(int i=0;i<turn.size();i++){
        cout<<turn[i].first<<' '<<turn[i].second<<endl;
    }

}
/*
*/
int32_t main(){
    fast;
    int t=1,n;
   // cin>>t;
    while(t--){
        Bogdan();
    }
}
