#include <iostream>
using namespace std;
int a[1000];
int b[1000],n;
void mymerge(int l,int mid,int r);
void print()
{
int i;
for(i=0;i<n;i++)
cout<<a[i]<<' ';
cout<<endl;
}
void mergesort(int l,int r)
{
if(l>=r)
return;
int mid=(l+r)/2;
mergesort(l,mid);
mergesort(mid+1,r);
mymerge(l,mid+1,r);
}
void mymerge(int l,int mid,int r)
{
int i=l,j=mid,p=l;
while(i<mid&&j<=r)
{
if(a[i]<a[j])
b[p++]=a[i++];
else b[p++]=a[j++];
}
while(i<mid)
{
b[p++]=a[i++];
}
while(j<=r)
{
b[p++]=a[j++];
}
for(i=l;i<=r;i++)
{
a[i]=b[i];
}
print();
}
int main()
{
cin>>n;
int i;
for(i=0;i<n;i++)
cin>>a[i];
mergesort(0,n-1);
print();
}