#include<bits/stdc++.h>
using namespace std;
int n, arr[100], tot, dp[100][100000], mark[100];
int solve(int idx, int sum1){
if(idx == n){
int sum2 = tot - sum1;
//cout << sum1 << " " << sum2 << endl;
if(sum1 == sum2) return 1;return 0;
}
if(dp[idx][sum1] != -1) return dp[idx][sum1];
int v1 = 0, v2 = 0;
v1 = solve(idx+1, sum1);
v2 = solve(idx+1, sum1 + arr[idx]);
if(v1 + v2 > 0) dp[idx][sum1] = 1;
else dp[idx][sum1] = 0;
return dp[idx][sum1];
}
void check(int idx, int sum1){
if(idx == n) return;
int v1 = solve(idx+1, sum1);
int v2 = solve(idx+1, sum1 + arr[idx]);
if(v1 == 1){
mark[idx] = 1;
check(idx+1, sum1);
}else{
mark[idx] = 2;
check(idx+1, sum1 + arr[idx]);
}
}
int main(){
cin >> n;
for(int i = 0;i < n;i++) cin >> arr[i], tot += arr[i];
memset(dp, -1, sizeof dp);
int ct = solve(0, 0);
if(ct == 0){
cout << "No Partition" << endl;
}else{
check(0, 0);
for(int i = 0;i < n;i++) if(mark[i] == 1) cout << arr[i] << " ";cout << endl;
for(int i = 0;i < n;i++) if(mark[i] == 2) cout << arr[i] << " ";cout << endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbiwgYXJyWzEwMF0sIHRvdCwgZHBbMTAwXVsxMDAwMDBdLCBtYXJrWzEwMF07CmludCBzb2x2ZShpbnQgaWR4LCBpbnQgc3VtMSl7CiAgICBpZihpZHggPT0gbil7CiAgICAgICAgaW50IHN1bTIgPSB0b3QgLSBzdW0xOwogICAgICAgIC8vY291dCA8PCBzdW0xIDw8ICIgIiA8PCBzdW0yIDw8IGVuZGw7CiAgICAgICAgaWYoc3VtMSA9PSBzdW0yKSByZXR1cm4gMTtyZXR1cm4gMDsKICAgIH0KICAgIGlmKGRwW2lkeF1bc3VtMV0gIT0gLTEpIHJldHVybiBkcFtpZHhdW3N1bTFdOwogICAgaW50IHYxID0gMCwgdjIgPSAwOwogICAgdjEgPSBzb2x2ZShpZHgrMSwgc3VtMSk7CiAgICB2MiA9IHNvbHZlKGlkeCsxLCBzdW0xICsgYXJyW2lkeF0pOwogICAgaWYodjEgKyB2MiA+IDApIGRwW2lkeF1bc3VtMV0gPSAxOwogICAgZWxzZSBkcFtpZHhdW3N1bTFdID0gMDsKICAgIHJldHVybiBkcFtpZHhdW3N1bTFdOwp9Cgp2b2lkIGNoZWNrKGludCBpZHgsIGludCBzdW0xKXsKICAgIGlmKGlkeCA9PSBuKSByZXR1cm47CiAgICBpbnQgdjEgPSBzb2x2ZShpZHgrMSwgc3VtMSk7CiAgICBpbnQgdjIgPSBzb2x2ZShpZHgrMSwgc3VtMSArIGFycltpZHhdKTsKICAgIGlmKHYxID09IDEpewogICAgICAgIG1hcmtbaWR4XSA9IDE7CiAgICAgICAgY2hlY2soaWR4KzEsIHN1bTEpOwogICAgfWVsc2V7CiAgICAgICAgbWFya1tpZHhdID0gMjsKICAgICAgICBjaGVjayhpZHgrMSwgc3VtMSArIGFycltpZHhdKTsKICAgIH0KfQoKaW50IG1haW4oKXsKICAgIGNpbiA+PiBuOwogICAgZm9yKGludCBpID0gMDtpIDwgbjtpKyspIGNpbiA+PiBhcnJbaV0sIHRvdCArPSBhcnJbaV07CiAgICBtZW1zZXQoZHAsIC0xLCBzaXplb2YgZHApOwogICAgaW50IGN0ID0gc29sdmUoMCwgMCk7CiAgICBpZihjdCA9PSAwKXsKICAgICAgICBjb3V0IDw8ICJObyBQYXJ0aXRpb24iIDw8IGVuZGw7CiAgICB9ZWxzZXsKICAgICAgICBjaGVjaygwLCAwKTsKICAgICAgICBmb3IoaW50IGkgPSAwO2kgPCBuO2krKykgaWYobWFya1tpXSA9PSAxKSBjb3V0IDw8IGFycltpXSA8PCAiICI7Y291dCA8PCBlbmRsOwogICAgICAgIGZvcihpbnQgaSA9IDA7aSA8IG47aSsrKSBpZihtYXJrW2ldID09IDIpIGNvdXQgPDwgYXJyW2ldIDw8ICIgIjtjb3V0IDw8IGVuZGw7CiAgICB9Cn0K