#include <bits/stdc++.h>
using namespace std;
struct node {
  int l, r, num;
} a[640000];
int cmp(node l, node r) { return l.num > r.num; }
int main() {
  int n, sum = 0;
  int b[900];
  cin >> n;
  for (int i = 1; i <= 2 * n; i++) b[i] = 0;
  for (int i = 1; i <= 2 * n - 1; i++)
    for (int j = 1; j <= i; j++) {
      int x;
      cin >> x;
      a[sum].l = i + 1;
      a[sum].r = j;
      a[sum].num = x;
      sum++;
    }
  sort(a, a + sum, cmp);
  for (int i = 0; i < sum; i++) {
    if (b[a[i].r] == 0 && b[a[i].l] == 0) {
      b[a[i].r] = a[i].l;
      b[a[i].l] = a[i].r;
    }
  }
  for (int i = 1; i <= 2 * n; i++) {
    cout << b[i];
    if (i != 2 * n) cout << " ";
  }
  return 0;
}
