#include <stdio.h>

int S[100001], pre[101010], n, flag;

void swap(int a, int b)
{
    int t = S[a];
    S[a] = S[b];
    S[b] = t;
}

void prt()
{
    int cnt = 0;
    for(int i = 0 ; i < n ; i++ )
        if( pre[i] == S[i] ) cnt++;
    if( cnt == n ) return;
    for(int i = 0 ; i < n ; i++ )
        printf("%d ", S[i]), pre[i] = S[i];
    puts("");
    flag = true;
}

void f(int s, int e)
{
    if( s < e )
    {
        int p = s, l = s+1, r = e;
        while( l <= r )
        {
            while( l <= e && S[l] <= S[p] ) l++;
            while( r >= s+1 && S[r] >= S[p] ) r--;
            if( l < r ) swap(l,r);
        }
        swap(p, r);
        f(s, r-1);
        f(r+1, e);
        prt();
    }
}

int main()
{
    freopen(".10.in","r",stdin);
    freopen(".10.out","w",stdout);
    scanf("%d", &n);
    for(int i = 0 ; i < n ; i++ )
        scanf("%d", &S[i]), pre[i] = S[i];
    f(0, n-1);
    if( !flag ) puts("OK");
}
