#include<bits/stdc++.h>
using namespace std;
const int N=510;
typedef pair<int,int>PII;
typedef long long ll;
int g[510][510];
bool st[N][N];
int n;
bool is_in(int x,int y){
	if(x>=1&&x<=n&&y>=1&&y<=n&&y<=x)return true;
	return false;
}
int cnt=0;
int nx[4]={-1,0,1,0};
int ny[4]={0,-1,0,1};
void dfs(int x,int y,int xx){
	if(!cnt)return ;
	g[x][y]=xx; cnt--;
	for(int i=0;i<4;i++){
		int a=x+nx[i];
		int b=y+ny[i];
		if(!g[a][b]&&is_in(a,b))dfs(a,b,xx);
	}
}

int main(){
	
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&g[i][i]);
		st[i][i]=1;
	}
	for(int i=1;i<=n;i++){
		cnt=g[i][i];
		dfs(i,i,g[i][i]);
		if(cnt!=0){
			cout<<-1<<endl;
			return 0;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=i;j++){
			printf("%d ",g[i][j]);
		}
		cout<<endl;
	}
} 