Vitaly has an array of *n* distinct integers. Vitaly wants to divide this array into three non-empty sets so as the following conditions hold: 
 1.  The product of all numbers in the first set is less than zero ( &lt; 0). 1.  The product of all numbers in the second set is greater than zero ( &gt; 0). 1.  The product of all numbers in the third set is equal to zero. 1.  Each number from the initial array must occur in exactly one set. 
Help Vitaly. Divide the given array.
The first line of the input contains integer *n* (3 ≤ *n* ≤ 100). The second line contains *n* space-separated distinct integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (|*a*<sub class="lower-index">*i*</sub>| ≤ 10<sup class="upper-index">3</sup>) — the array elements.
#* Tóm tắt đề:
# Một mảng n phần tử, 3<= n <= 100.
# Chia mảng thành 3 mảng con:
# - Mảng 1: Tích các phần tử < 0. -3
# - Mảng 2: Tích các phần tử > 0. -2 -5
# - Mảng 3: Tích các phần tử = 0. 0


# Nhận xét:
# - 2 số âm nhân lại -> số dương.
# - Mảng 3 ít nhất phải có 1 số 0.

# Xây dựng:
# Mảng 1: -> Số phẩn tử âm của mảng 1 phải là số lẻ.
# Mảng 2: Chứa sao cũng được :> Miễn là > 0. [Rỗng -> đem 2 số âm xuống]
# Mảng 3: Đưa hết tất cả số 0 vào mảng 3. <-- -2*0 = 0
# Không được có mảng nào rỗng.


# 1. Đọc vào mảng nums.
n = int(input())
nums = list(map(int, input().split()))


# 2. Xây dựng mảng:
neg_arr = []
n_neg = 0
pos_arr = []
n_pos = 0
zeros_arr = []
n_zeros = 0

for i in range(n):
    # - Đẩy hết số âm vào neg_arr.
    if (nums[i] < 0):
        neg_arr.append(nums[i])
        n_neg += 1
    # - Đẩy hết số dương vào pos_arr.
    if (nums[i] > 0):
        pos_arr.append(nums[i])
        n_pos += 1
    # - Đẩy hết số 0 vào zeros_arr.
    if (nums[i] == 0):
        zeros_arr.append(nums[i])
        n_zeros += 1

# 3. Kiểm tra ràng buộc:
# - Nếu mảng 1 chẵn -> Đem 1 phần tử xuống mảng 3.
# -> Lẻ
if n_neg % 2 == 0:
    zeros_arr.append(neg_arr[n_neg - 1])
    n_neg -= 1
    n_zeros += 1

# - Nếu mảng 2 bị rỗng -> đem 2 phần tử của mảng 1 xuống.
if n_pos == 0:
    pos_arr.append(neg_arr[n_neg - 1])
    n_neg -= 1
    pos_arr.append(neg_arr[n_neg - 1])
    n_neg -= 1
    n_pos += 2

# In kq
print(n_neg, end = " ")
for i in range(n_neg):
    print(neg_arr[i],end = " ")
print()
print(n_pos, end=" ")
for i in range(n_pos):
    print(pos_arr[i], end=" ")
print()

print(n_zeros, end=" ")
for i in range(n_zeros):
    print(zeros_arr[i], end=" ")
print()

