#配列の長さ
array_length = gets.to_i

#入力を配列化
array_value = gets.chomp.split(" ").map(&:to_i)

#output用配列
output_array_value = []

#昇順に挿入ソートを実施
array_value.each_with_index do |item, index|
    
    #挿入対象の値
    v = item
    
    #挿入対象のインデックスより1つ小さいインデックスを用意
    j = index - 1
    
    #挿入対象以下のインデックスをソート
    while (j >= 0) && (array_value[j] > v) do   #インデックスが0以上かつ挿入対象より大きい値の場合
        #インデックスが1大きい場所へコピー
        array_value[j+1] = array_value[j]
        
        #走査対象のインデックスをデクリメント
        j -= 1
    end
    
    #挿入対象の値をソート後の位置へ代入
    #A[j+1] == A[j+2]またはj+1が最後のインデックスになっているはず
    array_value[j+1] = v
    
    #ソート操作を1回行う度に出力
    puts array_value.join(" ")
end





