#include <bits/stdc++.h>
using namespace std;
int n, x, t;
struct node {
  int a, b, v;
  bool operator<(const node &a) const { return v > a.v; }
} A[2000005];
int ans[805];
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= 2 * n - 1; i++) {
    for (int j = 1; j <= i; j++) {
      scanf("%d", &x);
      A[++t] = (node){i + 1, j, x};
    }
  }
  sort(A + 1, A + t + 1);
  for (int i = 1; i <= t; i++) {
    if (!ans[A[i].a] && !ans[A[i].b])
      ans[A[i].a] = A[i].b, ans[A[i].b] = A[i].a;
  }
  int f = 0;
  for (int i = 1; i <= 2 * n; i++) {
    if (f) printf(" ");
    f = 1;
    printf("%d", ans[i]);
  }
  puts("");
  return 0;
}
