#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=9999999967;
using namespace std;
struct node
{
    int x,id;
}b[50000];
const int N=1e6+10;
int t;
int n,m;
int a[2000],ans[200][200],vis[2000][2000];
bool cmp(node a,node b)
{
    return a.x<b.x;
}
int main(void)
{
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        for(int i=1;i<=n;i++)
        {
            int x=a[i];
            int j=i,k=i;
            vis[j][k]=a[i];
            x--;
            while(x)
            {
                if(vis[j][k-1]==0 && k-1>=1)
                {
                    k--;
                }
                else
                {
                    j++;
                }
                vis[j][k]=a[i];
                x--;
            }
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=i;j++)
            {
                printf("%d%c",vis[i][j],j==i?'\n':' ');
            }
        }
    }
    return 0;
}
