n=int(input())
a=list(map(int,input().split()))
a1,a2,a3=[],[],[]
for i in a:
if i<0:a1.append(i)
elif i>0:a2.append(i)
else:a3.append(i)
if not len(a1)&1:
a3.append(a1.pop())
if len(a2)==0:
a2.append(a1.pop())
a2.append(a1.pop())
print(len(a1),*a1)
print(len(a2),*a2)
print(len(a3),*a3)
168B - Wizards and Minimal Spell | 7A - Kalevitch and Chess |
912B - New Year's Eve | 1537C - Challenging Cliffs |
879B - Table Tennis | 1674E - Breaking the Wall |
1282A - Temporarily unavailable | 1366C - Palindromic Paths |
336A - Vasily the Bear and Triangle | 926A - 2-3-numbers |
276D - Little Girl and Maximum XOR | 1253C - Sweets Eating |
1047A - Little C Loves 3 I | 758D - Ability To Convert |
733A - Grasshopper And the String | 216A - Tiling with Hexagons |
1351B - Square | 1225A - Forgetting Things |
1717A - Madoka and Strange Thoughts | 1717B - Madoka and Underground Competitions |
61B - Hard Work | 959B - Mahmoud and Ehab and the message |
802G - Fake News (easy) | 1717C - Madoka and Formal Statement |
420A - Start Up | 1031A - Golden Plate |
1559C - Mocha and Hiking | 427B - Prison Transfer |
330A - Cakeminator | 426A - Sereja and Mugs |