#include <bits/stdc++.h>
using namespace std;
typedef struct {
  int u, v, x;
} team;
int cmp(const void *a, const void *b) {
  team *x = (team *)a, *y = (team *)b;
  return y->x - x->x;
}
int main() {
  int i, j, k, sz;
  int n;
  cin >> n;
  sz = n << 1;
  int pairs = (sz * (sz - 1)) / 2;
  int ans[sz];
  team a[pairs];
  --sz;
  for (k = 0, i = 1; i <= sz; i++) {
    for (j = 0; j < i; j++) {
      cin >> a[k].x;
      a[k].u = i;
      a[k].v = j;
      k++;
    }
  }
  memset(ans, -1, sizeof(ans));
  qsort(a, pairs, sizeof(*a), cmp);
  for (i = 0; i < pairs; i++) {
    j = a[i].u;
    k = a[i].v;
    if (ans[j] == -1 && ans[k] == -1) {
      ans[j] = k;
      ans[k] = j;
    }
  }
  sz++;
  for (i = 0; i < sz; i++) cout << ans[i] + 1 << " ";
  return 0;
}
