#include <bits/stdc++.h>
using namespace std;
struct s {
  int x;
  int y;
  int str;
  s(int a, int b, int st) {
    x = a;
    y = b;
    str = st;
  }
};
bool func(s x, s y) { return x.str > y.str; }
int main() {
  int n;
  cin >> n;
  vector<s> v;
  for (int i = 2; i <= 2 * n; i++) {
    for (int j = 1; j < i; j++) {
      int d;
      cin >> d;
      v.push_back(s(i, j, d));
    }
  }
  sort(v.begin(), v.end(), func);
  map<int, int> m;
  for (int i = 0; i < v.size(); i++) {
    if (m.find(v[i].x) != m.end() || m.find(v[i].y) != m.end()) {
      continue;
    }
    m[v[i].x] = v[i].y;
    m[v[i].y] = v[i].x;
  }
  for (int i = 1; i <= 2 * n; i++) {
    cout << m[i] << " ";
  }
  return 0;
}
