#include <bits/stdc++.h>
using namespace std;
const int MAXN = 805;
int n, m, a[MAXN][MAXN], res[MAXN];
void Process() {
  for (int i = 1; i <= m; i++)
    if (!res[i]) {
      int Max = 0, pos, Check = 1;
      for (int j = 1; j <= m; j++)
        if (!res[j])
          if (Max < a[i][j]) Max = a[i][j], pos = j;
      if (!Max) continue;
      for (int j = 1; j <= m; j++)
        if (!res[j])
          if (Max < a[pos][j]) {
            Check = 0;
            break;
          }
      if (!Check) continue;
      res[i] = pos;
      res[pos] = i;
    }
}
int main() {
  scanf("%d", &n);
  m = n * 2;
  for (int i = 1; i <= m; i++)
    for (int j = 1; j < i; j++) scanf("%d", &a[i][j]), a[j][i] = a[i][j];
  for (int i = 1; i <= n; i++) Process();
  for (int i = 1; i <= 2 * n; i++) printf("%d ", res[i]);
  return 0;
}
