#include <bits/stdc++.h>
using namespace std;
struct sort_pred {
  bool operator()(const pair<int, int> &left, const pair<int, int> &right) {
    return left.second < right.second;
  }
};
int POW(int a, int b) {
  int ret = 1, Exp = a;
  while (b) {
    if (b & 1) {
      ret = ret * Exp;
    }
    Exp = Exp * Exp;
    b /= 2;
  }
  return ret;
}
int Marked[1007];
string s1, s2;
vector<pair<int, pair<int, int> > > Rec;
int main() {
  int n, i, j, m;
  cin >> n;
  m = 2 * n;
  for (i = 2; i <= m; i++) {
    for (j = 1; j < i; j++) {
      int a;
      scanf("%d", &a);
      Rec.push_back(make_pair(a, make_pair(i, j)));
    }
  }
  sort(Rec.rbegin(), Rec.rend());
  int siz = Rec.size();
  for (i = 0; i < siz; i++) {
    int x = Rec[i].second.first;
    int y = Rec[i].second.second;
    if (!Marked[x] && !Marked[y]) {
      Marked[x] = y;
      Marked[y] = x;
    }
  }
  for (i = 1; i <= m; i++) printf("%d ", Marked[i]);
  return 0;
}
