n,*a=map(int,open(0).read().split())
a.sort()
l=[]
if a[-1]>=0>a[0]:
  a,b=[t for t in a if t>=0],[t for t in a if t<0]
  c,y=a.pop(),b.pop()
  while b:
    t=b.pop()
    l.append((c,t))
    c-=t
  while a:
    t=a.pop()
    l.append((y,t))
    y-=t
  l.append((c,y))
  c-=y
elif a[0]>=0:
  s,*a,c=a
  while a:
    t=a.pop()
    l.append((s,t))
    s-=t
  l.append((c,s))
  c-=s
else:
  *a,c=a
  while a:
    t=a.pop()
    l.append((c,t))
    c-=t
print(c)
for t in l:print(*t) n,*a=map(int,open(0).read().split()) n map(int,open(0).read().split()) map int open(0).read().split() (0).read().split (0).read() (0).read (0) open 0 read split *a a a.sort() a.sort a sort l=[] l [] if a[-1]>=0>a[0]:
  a,b=[t for t in a if t>=0],[t for t in a if t<0]
  c,y=a.pop(),b.pop()
  while b:
    t=b.pop()
    l.append((c,t))
    c-=t
  while a:
    t=a.pop()
    l.append((y,t))
    y-=t
  l.append((c,y))
  c-=y
elif a[0]>=0:
  s,*a,c=a
  while a:
    t=a.pop()
    l.append((s,t))
    s-=t
  l.append((c,s))
  c-=s
else:
  *a,c=a
  while a:
    t=a.pop()
    l.append((c,t))
    c-=t a[-1]>=0>a[0] a[-1]>=0 a[-1] a -1 0 a[0] a 0 t for t in a if t>=0 for t in a if t>=0 t a t>=0 t 0 if t>=0 t a,b=[t for t in a if t>=0],[t for t in a if t<0] a [t for t in a if t>=0] b [t for t in a if t<0] c,y=a.pop(),b.pop() c a.pop() a.pop a pop y b.pop() b.pop b pop while b:
    t=b.pop()
    l.append((c,t))
    c-=t
   b t=b.pop() t b.pop() b.pop b pop l.append((c,t)) l.append l append (c,t) c t c-=t c t while a:
    t=a.pop()
    l.append((y,t))
    y-=t
   a t=a.pop() t a.pop() a.pop a pop l.append((y,t)) l.append l append (y,t) y t y-=t y t l.append((c,y)) l.append l append (c,y) c y c-=y c y elif a[0]>=0:
  s,*a,c=a
  while a:
    t=a.pop()
    l.append((s,t))
    s-=t
  l.append((c,s))
  c-=s a[0]>=0 a[0] a 0 0 s,*a,c=a s a c *a a while a:
    t=a.pop()
    l.append((s,t))
    s-=t
   a t=a.pop() t a.pop() a.pop a pop l.append((s,t)) l.append l append (s,t) s t s-=t s t l.append((c,s)) l.append l append (c,s) c s c-=s c s *a,c=a c a *a a while a:
    t=a.pop()
    l.append((c,t))
    c-=t a t=a.pop() t a.pop() a.pop a pop l.append((c,t)) l.append l append (c,t) c t c-=t c t print(c) print c for t in l:print(*t) t l t=b.pop() b.pop() t t=a.pop() a.pop() t c-=y y c c-=t t c s,*a,c=a a s t=a.pop() a.pop() t y=a.pop(),b.pop() b.pop() y y-=t t y c=a a c a,b=[t for t in a if t>=0],[t for t in a if t<0] [t for t in a if t>=0] a c=a a c n,*a=map(int,open(0).read().split()) map(int,open(0).read().split()) n l=[] [] l c,y=a.pop(),b.pop() a.pop() c c-=t t c t=a.pop() a.pop() t s-=t t s b=[t for t in a if t>=0],[t for t in a if t<0] [t for t in a if t<0] b c-=s s c
n,*a=map(int,open(0).read().split())
a.sort()
l=[]
if a[-1]>=0>a[0]:
  a,b=[t for t in a if t>=0],[t for t in a if t<0]
  c,y=a.pop(),b.pop()
  while b:
    t=b.pop()
    l.append((c,t))
    c-=t
  while a:
    t=a.pop()
    l.append((y,t))
    y-=t
  l.append((c,y))
  c-=y
elif a[0]>=0:
  s,*a,c=a
  while a:
    t=a.pop()
    l.append((s,t))
    s-=t
  l.append((c,s))
  c-=s
else:
  *a,c=a
  while a:
    t=a.pop()
    l.append((c,t))
    c-=t
print(c)
for t in l:print(*t)