#include <bits/stdc++.h>
using namespace std;
struct Line {
  int l, r, v;
} line[805 * 805];
bool operator<(Line x, Line y) { return x.v > y.v; }
int main() {
  int n;
  scanf("%d", &n);
  int num = 0;
  for (int i = 2; i <= 2 * n; i++) {
    for (int j = 1; j < i; j++) {
      line[num].l = i;
      line[num].r = j;
      scanf("%d", &line[num++].v);
    }
  }
  sort(line, line + num);
  bool vis[805] = {false};
  int map[805];
  for (int i = 0; i < num; i++) {
    int l = line[i].l, r = line[i].r;
    if (!vis[l] && !vis[r]) {
      vis[l] = vis[r] = true;
      map[l] = r;
      map[r] = l;
    }
  }
  for (int i = 1; i <= 2 * n; i++) printf("%d ", map[i]);
  return 0;
}
