N = int(read_line()) # number of elements
s = map(int, read_line().split()) # array of values
R = int(read_line()) # maximum sum of the subset
W = [[0 for r in range(R+1)] for i in range(N)] # subset 1
H = [[0 for r in range(R+1)] for i in range(N+1)] # subset 2
for i in range(N):
for r in range(R+1):
if i > 0 and W[i-1][r] > 0:
W[i][r] = W[i-1][r]
if r >= s[i] and W[i-1][r-s[i]] > 0:
W[i][r] = set_bit(W[i-1][r-s[i]], i)
if r == s[i]:
W[i][r] = set_bit(0, i)
j = N - i - 1
if H[j+1][r] > 0:
H[j][r] = H[j+1][r]
if r >= s[j] and H[j+1][r-s[j]] > 0:
H[j][r] = set_bit(H[j+1][r-s[j]], j)
if r == s[j]:
H[j][r] = set_bit(0, j)
# find and output results
for i in xrange(N):
for j in xrange(i+1, N):
for ri in xrange(1, R+1):
for rj in xrange(1, R+1):
w = W[i][ri]
h = H[j][rj]
if w > 0 and h > 0:
for t in range(N):
if test_bit(w, t) > 0:
print s[t],
print '->',
for t in range(N):
if test_bit(h, t) > 0:
print s[t],
print
ICAgIE4gPSBpbnQocmVhZF9saW5lKCkpICMgbnVtYmVyIG9mIGVsZW1lbnRzCiAgICBzID0gbWFwKGludCwgcmVhZF9saW5lKCkuc3BsaXQoKSkgIyBhcnJheSBvZiB2YWx1ZXMKICAgIFIgPSBpbnQocmVhZF9saW5lKCkpICMgbWF4aW11bSBzdW0gb2YgdGhlIHN1YnNldAoKICAgIFcgPSBbWzAgZm9yIHIgaW4gcmFuZ2UoUisxKV0gZm9yIGkgaW4gcmFuZ2UoTildICMgc3Vic2V0IDEKICAgIEggPSBbWzAgZm9yIHIgaW4gcmFuZ2UoUisxKV0gZm9yIGkgaW4gcmFuZ2UoTisxKV0gIyBzdWJzZXQgMgoKICAgIGZvciBpIGluIHJhbmdlKE4pOgogICAgICAgIGZvciByIGluIHJhbmdlKFIrMSk6CiAgICAgICAgICAgIGlmIGkgPiAwIGFuZCBXW2ktMV1bcl0gPiAwOgogICAgICAgICAgICAgICAgV1tpXVtyXSA9IFdbaS0xXVtyXQogICAgICAgICAgICBpZiByID49IHNbaV0gYW5kIFdbaS0xXVtyLXNbaV1dID4gMDoKICAgICAgICAgICAgICAgIFdbaV1bcl0gPSAgc2V0X2JpdChXW2ktMV1bci1zW2ldXSwgaSkKICAgICAgICAgICAgaWYgciA9PSBzW2ldOgogICAgICAgICAgICAgICAgV1tpXVtyXSA9IHNldF9iaXQoMCwgaSkKCiAgICAgICAgICAgIGogPSBOIC0gaSAtIDEKICAgICAgICAgICAgaWYgSFtqKzFdW3JdID4gMDoKICAgICAgICAgICAgICAgIEhbal1bcl0gPSBIW2orMV1bcl0KICAgICAgICAgICAgaWYgciA+PSBzW2pdIGFuZCBIW2orMV1bci1zW2pdXSA+IDA6CiAgICAgICAgICAgICAgICBIW2pdW3JdID0gIHNldF9iaXQoSFtqKzFdW3Itc1tqXV0sIGopCiAgICAgICAgICAgIGlmIHIgPT0gc1tqXToKICAgICAgICAgICAgICAgIEhbal1bcl0gPSBzZXRfYml0KDAsIGopCgogICAgIyBmaW5kIGFuZCBvdXRwdXQgcmVzdWx0cwogICAgZm9yIGkgaW4geHJhbmdlKE4pOgogICAgICAgIGZvciBqIGluIHhyYW5nZShpKzEsIE4pOgogICAgICAgICAgICBmb3IgcmkgaW4geHJhbmdlKDEsIFIrMSk6CiAgICAgICAgICAgICAgICBmb3IgcmogaW4geHJhbmdlKDEsIFIrMSk6CiAgICAgICAgICAgICAgICAgICAgdyA9IFdbaV1bcmldCiAgICAgICAgICAgICAgICAgICAgaCA9IEhbal1bcmpdCiAgICAgICAgICAgICAgICAgICAgaWYgdyA+IDAgYW5kIGggPiAwOgogICAgICAgICAgICAgICAgICAgICAgICBmb3IgdCBpbiByYW5nZShOKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3RfYml0KHcsIHQpID4gMDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCBzW3RdLAogICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnLT4nLAogICAgICAgICAgICAgICAgICAgICAgICBmb3IgdCBpbiByYW5nZShOKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3RfYml0KGgsIHQpID4gMDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCBzW3RdLAogICAgICAgICAgICAgICAgICAgICAgICBwcmludA==