#include <iostream>
#include <vector>
#pragma GCC optimize("Ofast")
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

	int n;
	cin>>n;
    int a[n];
    for(int i=0;i<n;i++) cin >>a[i];
    int l=0;int r=n-1;
    vector<pair<int,int> > obm;
    while(l<r)
    {
        int maxi=r;
        int mini=l;
        for(int j=l;j<=r;j++)
        {
            if(a[j]>=a[maxi]) maxi=j;
            if(a[mini]>a[j]) mini=j;
        }
        if(maxi==r)
        {
            r--;continue;
        }
        if(mini==l)
        {
            l++;continue;
        }
        if(r-maxi<mini-l)
        {
            obm.push_back({maxi,r});
            int b[r-maxi+1];
            for(int j=maxi;j<=r;j++) b[j-maxi]=a[maxi+r-j];
            for(int j=maxi;j<=r;j++) a[j]=b[j-maxi];
            r--;
        }
        else
        {
            obm.push_back({l,mini});
            int b[mini-l+1];
            for(int j=l;j<=mini;j++) b[j-l]=a[mini+l-j];
            for(int j=l;j<=mini;j++) a[j]=b[j-l];
            l++;
        }
        
    }
    cout<<obm.size()<<'\n';
    for(int i=0;i<obm.size();i++) cout<< obm[i].first+1<<' '<<obm[i].second+1<<'\n';
}
