#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;
    int lev[n];
    int prv[n];
    int kol=0;
    while(l<r)
    {
        int maxi=l;
        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)
        {
            lev[kol]=maxi;prv[kol]=r;kol++;
            int b[r-maxi+1];int t;
            for(int j=maxi;j<=(maxi+r)/2;j++) 
            {
                t=a[j];
                a[j]=a[maxi+r-j];
                a[maxi+r-j]=t;
            }
            r--;
        }
        else
        {
            lev[kol]=l;prv[kol]=mini;kol++;
            int b[mini-l+1];int t;
            for(int j=l;j<=(l+mini)/2;j++)
            {
                t=a[j];
                a[j]=a[mini+l-j];
                a[mini+l-j]=t;
            }
            l++;
        }
        
    }
    cout<<kol<<'\n';
    for(int i=0;i<kol;i++) cout<< lev[i]+1<<' '<<prv[i]+1<<'\n';
}
