N=int(input())
A=list(map(int,input().split()))
B=list(map(lambda x:abs(x),A))

A.sort()
for i in range(N):
    if A[i]>0:
        break
hu=A[:i]
sei=A[i:]

l=[]
if sei and hu:
    ans=sei.pop(-1)
    for item in sei:
        l.append([hu[0],item])
        hu[0]-=item
    for item in hu:
        l.append([ans,item])
        ans-=item

elif sei:
    ans=sei.pop(-1)
    for i in range(len(sei)-1):
        l.append([sei[0],sei[i+1]])
        sei[0]-=sei[i+1]
    l.append([ans,sei[0]])
    ans-=sei[0]
elif hu:
    for i in range(len(hu)-1):
        l.append([hu[-1],hu[-i-2]])
        hu[-1]-=hu[-i-2]
    ans=hu[-1]

print(ans)
for item in l:
    print(*item) N=int(input()) N int(input()) int input() input A=list(map(int,input().split())) A list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split B=list(map(lambda x:abs(x),A)) B list(map(lambda x:abs(x),A)) list map(lambda x:abs(x),A) map lambda x:abs(x) abs(x) abs x x A A.sort() A.sort A sort for i in range(N):
    if A[i]>0:
        break i range(N) range N if A[i]>0:
        break A[i]>0 A[i] A i 0 break hu=A[:i] hu A[:i] A :i i sei=A[i:] sei A[i:] A i: i l=[] l [] if sei and hu:
    ans=sei.pop(-1)
    for item in sei:
        l.append([hu[0],item])
        hu[0]-=item
    for item in hu:
        l.append([ans,item])
        ans-=item

elif sei:
    ans=sei.pop(-1)
    for i in range(len(sei)-1):
        l.append([sei[0],sei[i+1]])
        sei[0]-=sei[i+1]
    l.append([ans,sei[0]])
    ans-=sei[0]
elif hu:
    for i in range(len(hu)-1):
        l.append([hu[-1],hu[-i-2]])
        hu[-1]-=hu[-i-2]
    ans=hu[-1] sei and hu sei hu ans=sei.pop(-1) ans sei.pop(-1) sei.pop sei pop -1 for item in sei:
        l.append([hu[0],item])
        hu[0]-=item
     item sei l.append([hu[0],item]) l.append l append [hu[0],item] hu[0] hu 0 item hu[0]-=item hu[0] hu 0 item for item in hu:
        l.append([ans,item])
        ans-=item item hu l.append([ans,item]) l.append l append [ans,item] ans item ans-=item ans item elif sei:
    ans=sei.pop(-1)
    for i in range(len(sei)-1):
        l.append([sei[0],sei[i+1]])
        sei[0]-=sei[i+1]
    l.append([ans,sei[0]])
    ans-=sei[0] sei ans=sei.pop(-1) ans sei.pop(-1) sei.pop sei pop -1 for i in range(len(sei)-1):
        l.append([sei[0],sei[i+1]])
        sei[0]-=sei[i+1]
     i range(len(sei)-1) range len(sei)-1 len(sei) len sei 1 l.append([sei[0],sei[i+1]]) l.append l append [sei[0],sei[i+1]] sei[0] sei 0 sei[i+1] sei i+1 i 1 sei[0]-=sei[i+1] sei[0] sei 0 sei[i+1] sei i+1 i 1 l.append([ans,sei[0]]) l.append l append [ans,sei[0]] ans sei[0] sei 0 ans-=sei[0] ans sei[0] sei 0 elif hu:
    for i in range(len(hu)-1):
        l.append([hu[-1],hu[-i-2]])
        hu[-1]-=hu[-i-2]
    ans=hu[-1] hu for i in range(len(hu)-1):
        l.append([hu[-1],hu[-i-2]])
        hu[-1]-=hu[-i-2]
     i range(len(hu)-1) range len(hu)-1 len(hu) len hu 1 l.append([hu[-1],hu[-i-2]]) l.append l append [hu[-1],hu[-i-2]] hu[-1] hu -1 hu[-i-2] hu -i-2 -i i 2 hu[-1]-=hu[-i-2] hu[-1] hu -1 hu[-i-2] hu -i-2 -i i 2 ans=hu[-1] ans hu[-1] hu -1 print(ans) print ans for item in l:
    print(*item) item l print(*item) print *item item A=list(map(int,input().split())) list(map(int,input().split())) A ans=sei.pop(-1) sei.pop(-1) ans ans-=sei[0] sei[0] ans sei=A[i:] A[i:] sei B=list(map(lambda x:abs(x),A)) list(map(lambda x:abs(x),A)) B ans-=item item ans N=int(input()) int(input()) N ans=sei.pop(-1) sei.pop(-1) ans ans=hu[-1] hu[-1] ans hu=A[:i] A[:i] hu l=[] [] l
N=int(input())
A=list(map(int,input().split()))
B=list(map(lambda x:abs(x),A))

A.sort()
for i in range(N):
    if A[i]>0:
        break
hu=A[:i]
sei=A[i:]

l=[]
if sei and hu:
    ans=sei.pop(-1)
    for item in sei:
        l.append([hu[0],item])
        hu[0]-=item
    for item in hu:
        l.append([ans,item])
        ans-=item

elif sei:
    ans=sei.pop(-1)
    for i in range(len(sei)-1):
        l.append([sei[0],sei[i+1]])
        sei[0]-=sei[i+1]
    l.append([ans,sei[0]])
    ans-=sei[0]
elif hu:
    for i in range(len(hu)-1):
        l.append([hu[-1],hu[-i-2]])
        hu[-1]-=hu[-i-2]
    ans=hu[-1]

print(ans)
for item in l:
    print(*item)