#include <bits/stdc++.h>
using namespace std;
struct team {
  int id1;
  int id2;
  int strength;
} data[1000000];
bool comp(const team &a, const team &b) { return a.strength < b.strength; }
int main() {
  int n;
  scanf("%d", &n);
  int people = 2 * n;
  int count = 0;
  for (int i = 2; i <= people; i++) {
    for (int j = 0; j < i - 1; j++) {
      int temp;
      scanf("%d", &temp);
      data[count].id1 = i;
      data[count].id2 = j + 1;
      data[count].strength = temp;
      count++;
    }
  }
  sort(data, data + count, comp);
  int teams[1000];
  for (int y = 0; y <= 990; y++) {
    teams[y] = 0;
  }
  int track = 0;
  int curr = count - 1;
  while (track != n) {
    if (teams[data[curr].id1] == 0 && teams[data[curr].id2] == 0) {
      teams[data[curr].id1] = data[curr].id2;
      teams[data[curr].id2] = data[curr].id1;
      track++;
    }
    curr--;
  }
  for (int i = 1; i <= 2 * n; i++) {
    printf("%d ", teams[i]);
  }
}
