#include <bits/stdc++.h>
using namespace std;
const int N = 820;
typedef struct node {
  int l, r, x;
} node;
node a[N * N];
bool cmp(node x, node y) { return x.x > y.x; }
int n, m, k, t, tot = 0;
int v[N], p[N], ans[N];
int main() {
  cin >> n;
  n = n * 2;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= i - 1; j++) {
      scanf("%d", &a[++tot].x);
      a[tot].l = i;
      a[tot].r = j;
    }
  sort(a + 1, a + tot + 1, cmp);
  for (int i = 1; i <= tot; i++) {
    int l = a[i].l;
    int r = a[i].r;
    if (v[l] || v[r]) continue;
    v[l] = v[r] = 1;
    ans[l] = r;
    ans[r] = l;
  }
  for (int i = 1; i <= n; i++) printf("%d ", ans[i]);
  cout << endl;
}
