#include <iostream>
#pragma GCC optimize("O3")
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;
        }
        /*
        */
        int sss=l+r-maxi-mini;
        if(kol%2==0)
        {
            if(maxi==r)
            {
                r--;continue;
            }
            lev[kol]=maxi;prv[kol]=r;
            r--;
        }
        else
        {
              if(mini==l)
                {
                    l++;continue;
                }
            lev[kol]=l;prv[kol]=mini;
        
            l++;
        }
        int t;int s=lev[kol]+prv[kol];
        for(int j=lev[kol];j<=s/2;j++) 
        {
            t=a[j];
            a[j]=a[s-j];
            a[s-j]=t;
        }
        kol++;
    }
    cout<<kol<<'\n';
    for(int i=0;i<kol;i++) cout<< lev[i]+1<<' '<<prv[i]+1<<'\n';
}
