# -*- coding: utf-8 -*-

def insertionSort(A, N):
    for i in range(1, N):
        print(" ".join(map(str, A)))
        
        v = A[i]
        j = i - 1
        while j >= 0 and A[j] > v:
            A[j+1] = A[j]
            j -= 1
        A[j+1] = v
    
    return A

if __name__ == '__main__':

    N = int(input())
    A = [ int(a) for a in input().split(" ")]

    A = insertionSort(A, N)
    print(" ".join(map(str, A))) def insertionSort(A, N):
    for i in range(1, N):
        print(" ".join(map(str, A)))
        
        v = A[i]
        j = i - 1
        while j >= 0 and A[j] > v:
            A[j+1] = A[j]
            j -= 1
        A[j+1] = v
    
    return A insertionSort for i in range(1, N):
        print(" ".join(map(str, A)))
        
        v = A[i]
        j = i - 1
        while j >= 0 and A[j] > v:
            A[j+1] = A[j]
            j -= 1
        A[j+1] = v
    
     i range(1, N) range 1 N print(" ".join(map(str, A))) print " ".join(map(str, A)) " ".join " " join map(str, A) map str A v = A[i] v A[i] A i j = i - 1 j i - 1 i 1 while j >= 0 and A[j] > v:
            A[j+1] = A[j]
            j -= 1
         j >= 0 and A[j] > v j >= 0 j 0 A[j] > v A[j] A j v A[j+1] = A[j] A[j+1] A j+1 j 1 A[j] A j j -= 1 j 1 A[j+1] = v A[j+1] A j+1 j 1 v return A A A A N N if __name__ == '__main__':

    N = int(input())
    A = [ int(a) for a in input().split(" ")]

    A = insertionSort(A, N)
    print(" ".join(map(str, A))) __name__ == '__main__' __name__ '__main__' N = int(input()) N int(input()) int input() input int(a) for a in input().split(" ") for a in input().split(" ") a input().split(" ") ().split () input split " " for a in input().split(" ") int(a) int a A = [ int(a) for a in input().split(" ")] A [ int(a) for a in input().split(" ")] A = insertionSort(A, N) A insertionSort(A, N) insertionSort A N print(" ".join(map(str, A))) print " ".join(map(str, A)) " ".join " " join map(str, A) map str A def insertionSort(A, N):
    for i in range(1, N):
        print(" ".join(map(str, A)))
        
        v = A[i]
        j = i - 1
        while j >= 0 and A[j] > v:
            A[j+1] = A[j]
            j -= 1
        A[j+1] = v
    
    return A def insertionSort(A, N):
    for i in range(1, N):
        print(" ".join(map(str, A)))
        
        v = A[i]
        j = i - 1
        while j >= 0 and A[j] > v:
            A[j+1] = A[j]
            j -= 1
        A[j+1] = v
    
    return A insertionSort N = int(input()) int(input()) N A = insertionSort(A, N) insertionSort(A, N) A A = [ int(a) for a in input().split(" ")] [ int(a) for a in input().split(" ")] A
# -*- coding: utf-8 -*-

def insertionSort(A, N):
    for i in range(1, N):
        print(" ".join(map(str, A)))
        
        v = A[i]
        j = i - 1
        while j >= 0 and A[j] > v:
            A[j+1] = A[j]
            j -= 1
        A[j+1] = v
    
    return A

if __name__ == '__main__':

    N = int(input())
    A = [ int(a) for a in input().split(" ")]

    A = insertionSort(A, N)
    print(" ".join(map(str, A)))
