#include <bits/stdc++.h>
using namespace std;
int cmpfunc(const void* a, const void* b) { return (*(int*)b - *(int*)a); }
int main() {
  long int n, i, j, k, ans[1000] = {0}, mi, mj, maxx;
  static int arr[1000][1000];
  for (i = 0; i < 1000; i++) {
    for (j = 0; j < 1000; j++) {
      arr[i][j] = 0;
    }
  }
  scanf("%ld", &n);
  for (i = 2; i <= 2 * n; i++) {
    for (j = 1; j < i; j++) {
      scanf("%ld", &arr[i][j]);
    }
  }
  for (k = 1; k <= n; k++) {
    maxx = 0;
    for (i = 2; i <= 2 * n; i++) {
      if (ans[i] != 0) continue;
      for (j = 1; j < i; j++) {
        if (ans[j] != 0) continue;
        if (arr[i][j] > maxx) {
          mi = i;
          mj = j;
          maxx = arr[i][j];
        }
      }
    }
    ans[mi] = mj;
    ans[mj] = mi;
  }
  for (i = 1; i <= 2 * n; i++) {
    printf("%ld ", ans[i]);
  }
  return 0;
}
