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

x = a.pop
y = a.shift
ans = []
a.each{|z|
  if z >= 0
    ans << [y,z]
    y -= z
  else
    ans << [x,z]
    x -= z
  end
}
ans << [x, y]

p x-y
ans.each{|t| puts t*" "}
