def arr_side_inject(arr_num)
    @data_arr[arr_num] << @data_arr[arr_num].inject(:+)
end

def arr_depth_inject(arr_num)
    depth_arr = []
    @data_num.times do |i|
        depth_arr << @data_arr[i][arr_num]
    end

    @data_arr[@data_num] << depth_arr.inject(:+)
end

def arr_rjust(arr_num)
    0.upto(@data_num) do |i|
        @data_arr[i][arr_num] = @data_arr[i][arr_num].to_s.rjust(5)
    end
end

while @data_num = gets.to_i
    break if @data_num == 0

    @data_arr = []
    @data_num.times do
        @data_arr << gets.chomp.split(' ').map!(&:to_i)
    end
    @data_arr.concat([[]])

    0.upto(@data_num - 1) do |i|
        arr_side_inject(i)
    end

    0.upto(@data_num) do |i|
        arr_depth_inject(i)
        arr_rjust(i)
    end

    0.upto(@data_num) do |i|
        puts @data_arr[i].join(' ')
    end
end