require 'enumerator'

def pascal(row_count)
  result = [[1]]
  (row_count - 1).times do
    new_row = [1]
    result.last.each_cons(2) { |a| new_row << (a[0] + a[1]) }
    result << (new_row << 1)
  end
  result
end

def pp_pascal(rows)
  max_digits = rows.last[rows.last.size / 2].to_s.size
  lines = rows.map {|row| row.map { |e| "%#{max_digits}i" % e }.join(' ') }
  max_size = lines.last.size
  lines.each { |line| puts line.center(max_size) }
end

pp_pascal(pascal((ARGV[0] || 10).to_i))