/*
TASK: fsort
LANG: C++
*/
//Rumen Hristov Hristov
#include <cstdio>

int n;
int a[ 1024 ];

void read()
{
    int i;
    scanf ("%d",&n);
    
    for (i=1;i<=n;i++)
    {
        scanf ("%d",&a[i]);
    }
}

int fmax(int t)
{
    int i;
    int max = -(1<<30);
    int pos = -1;
    
    for (i=1;i<=t;i++)
    {
        if (a[i] > max)
        {
            max = a[i];
            pos = i;
        }
    }
    
    return pos;
}

void rev(int s,int f)
{
    int tmp;
    
    while (1)
    {
        if (f-s < 1) break;
        
        tmp = a[s];
        a[s] = a[f];
        a[f] = tmp;
        s++;
        f--;
    }
}

void solve()
{
    int pos = n;
    int p;
    int i;
    int lamp = 0;
    
    while(1)
    {
        if (pos == 1) break;
        
        p = fmax(pos);
        
        if (p == pos) pos--;
        else
        {
            if (lamp == 1)
            {
                printf (" ");
            }
            
            if (p!=1)
            printf ("%d ",p);
            
            rev (1,p);
            
            printf ("%d",pos--);
            
            rev (1,pos+1);
        }
        lamp = 1;
    }
    
    printf ("\n");
}

int main()
{
    read();
    solve();
    
    return 0;
}
