n = gets.to_i
a = gets.split.map(&:to_i).sort

ans = []

a.reverse! if a[-1]<0
(n-2).times{|i|
  y = a.pop
  ans << [a[0], y]
  a[0] -= y
}
ans << [a.max, a.min]
p a.max-a.min

ans.each{|t| puts t*" "}