#include <iostream>

using namespace std;

void print_array(int s[], int n){
	int i;
	for (i=0; i < n; i++){
		cout << s[i] << " ";
	}
	cout << endl;
}

void insertion_sort(int s[], int n){
  int i, j, key;
  for (j = 1; j < n; j++){
    //display intermediate stage
  	print_array(s, n);
  	//insert s[j] into sorted set s[0..j-1]
  	i = j-1;
  	key = s[j];
  	while ((i >= 0) && (key < s[i])){
        s[i+1] = s[i];
  		i = i-1;
  	}
  	s[i+1] = key;
  }
  return;
} 

int main() {
	int n, i;
	scanf("%d", &n);
	int *s;
	s = (int *) malloc(sizeof(int) * n);
	for (i = 0; i < n; i++){
		scanf("%d", &s[i]);
	}
    
    insertion_sort(s, n);
    
    cout << "Done.  Result is: " << endl;
    print_array(s, n);
    
    free(s);
	return 0;
}