#include <bits/stdc++.h>
using namespace std;
const int N = 25, A = 50000;
int n, a[2 * N], dp[N][(N - 1) * A + 1];
bool in[2 * N];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n;
  for (int i = 0; i < 2 * n; i++) cin >> a[i];
  sort(a, a + 2 * n);
  dp[0][0] = -1;
  for (int i = 2; i < 2 * n; i++)
    for (int k = min(i - 2, n - 2); 0 <= k; k--)
      for (int v = 0; v <= A * k; v++)
        if (dp[k][v] && dp[k + 1][v + a[i]] == 0) dp[k + 1][v + a[i]] = i;
  int S = 0;
  for (int i = 2; i < 2 * n; i++) S += a[i];
  int v1 = (S + 1) / 2;
  while (dp[n - 1][v1] == 0) v1++;
  int v2 = S / 2;
  while (dp[n - 1][v2] == 0) v2--;
  int v = (v1 + v2 < S ? v2 : v1);
  int k = n - 1;
  while (dp[k][v] != -1) {
    in[dp[k][v]] = true;
    v -= a[dp[k][v]];
    k--;
  }
  cout << a[0];
  for (int i = 2; i < 2 * n; i++)
    if (in[i]) cout << " " << a[i];
  cout << "\n";
  for (int i = 2 * n - 1; 2 <= i; i--)
    if (!in[i]) cout << a[i] << " ";
  cout << a[1] << "\n";
  return 0;
}
