n = int(input())
nums = list(map(int, input().split()))

def insertion_sort(lis, num):
    print(' '.join(map(str, lis)))
    for i in range(1, num):
        v = lis[i]
        j = i - 1  # j は iの前の数
        while j >= 0 and lis[j] > v:  # jが0以上で配列のj番目の要素が現在の要素より大きい場合
            lis[j + 1] = lis[j]  # 配列j+1番目の要素に配列j番目の要素を格納
            # print(' '.join(lis))
            j -= 1  # jを-1
            lis[j + 1] = v  # 配列j+1番目の要素にvを格納
        print(' '.join(map(str, lis)))
    return lis

insertion_sort(nums, n)
 n = int(input()) n int(input()) int input() input nums = list(map(int, input().split())) nums list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split def insertion_sort(lis, num):
    print(' '.join(map(str, lis)))
    for i in range(1, num):
        v = lis[i]
        j = i - 1  # j は iの前の数
        while j >= 0 and lis[j] > v:  # jが0以上で配列のj番目の要素が現在の要素より大きい場合
            lis[j + 1] = lis[j]  # 配列j+1番目の要素に配列j番目の要素を格納
            # print(' '.join(lis))
            j -= 1  # jを-1
            lis[j + 1] = v  # 配列j+1番目の要素にvを格納
        print(' '.join(map(str, lis)))
    return lis insertion_sort print(' '.join(map(str, lis))) print ' '.join(map(str, lis)) ' '.join ' ' join map(str, lis) map str lis for i in range(1, num):
        v = lis[i]
        j = i - 1  # j は iの前の数
        while j >= 0 and lis[j] > v:  # jが0以上で配列のj番目の要素が現在の要素より大きい場合
            lis[j + 1] = lis[j]  # 配列j+1番目の要素に配列j番目の要素を格納
            # print(' '.join(lis))
            j -= 1  # jを-1
            lis[j + 1] = v  # 配列j+1番目の要素にvを格納
        print(' '.join(map(str, lis)))
     i range(1, num) range 1 num v = lis[i] v lis[i] lis i j = i - 1 j i - 1 i 1 while j >= 0 and lis[j] > v:  # jが0以上で配列のj番目の要素が現在の要素より大きい場合
            lis[j + 1] = lis[j]  # 配列j+1番目の要素に配列j番目の要素を格納
            # print(' '.join(lis))
            j -= 1  # jを-1
            lis[j + 1] = v  # 配列j+1番目の要素にvを格納
         j >= 0 and lis[j] > v j >= 0 j 0 lis[j] > v lis[j] lis j v lis[j + 1] = lis[j] lis[j + 1] lis j + 1 j 1 lis[j] lis j j -= 1 j 1 lis[j + 1] = v lis[j + 1] lis j + 1 j 1 v print(' '.join(map(str, lis))) print ' '.join(map(str, lis)) ' '.join ' ' join map(str, lis) map str lis return lis lis lis lis num num insertion_sort(nums, n) insertion_sort nums n n = int(input()) int(input()) n def insertion_sort(lis, num):
    print(' '.join(map(str, lis)))
    for i in range(1, num):
        v = lis[i]
        j = i - 1  # j は iの前の数
        while j >= 0 and lis[j] > v:  # jが0以上で配列のj番目の要素が現在の要素より大きい場合
            lis[j + 1] = lis[j]  # 配列j+1番目の要素に配列j番目の要素を格納
            # print(' '.join(lis))
            j -= 1  # jを-1
            lis[j + 1] = v  # 配列j+1番目の要素にvを格納
        print(' '.join(map(str, lis)))
    return lis def insertion_sort(lis, num):
    print(' '.join(map(str, lis)))
    for i in range(1, num):
        v = lis[i]
        j = i - 1  # j は iの前の数
        while j >= 0 and lis[j] > v:  # jが0以上で配列のj番目の要素が現在の要素より大きい場合
            lis[j + 1] = lis[j]  # 配列j+1番目の要素に配列j番目の要素を格納
            # print(' '.join(lis))
            j -= 1  # jを-1
            lis[j + 1] = v  # 配列j+1番目の要素にvを格納
        print(' '.join(map(str, lis)))
    return lis insertion_sort nums = list(map(int, input().split())) list(map(int, input().split())) nums
n = int(input())
nums = list(map(int, input().split()))

def insertion_sort(lis, num):
    print(' '.join(map(str, lis)))
    for i in range(1, num):
        v = lis[i]
        j = i - 1  # j は iの前の数
        while j >= 0 and lis[j] > v:  # jが0以上で配列のj番目の要素が現在の要素より大きい場合
            lis[j + 1] = lis[j]  # 配列j+1番目の要素に配列j番目の要素を格納
            # print(' '.join(lis))
            j -= 1  # jを-1
            lis[j + 1] = v  # 配列j+1番目の要素にvを格納
        print(' '.join(map(str, lis)))
    return lis

insertion_sort(nums, n)

