#include <bits/stdc++.h>
using namespace std;
struct str {
  int n1, n2, num;
  str(int n1, int n2) : n1(n1), n2(n2) {}
};
int n, ans[801] = {};
vector<str> a;
bool comp(const str &, const str &);
int main() {
  cin >> n;
  for (int i = 2; i <= 2 * n; i++) {
    for (int j = 1; j < i; j++) {
      str tmp(i, j);
      cin >> tmp.num;
      a.push_back(tmp);
    }
  }
  sort(a.begin(), a.end(), comp);
  for (int i = 0; i < a.size(); i++) {
    if (ans[a[i].n1] == 0 && ans[a[i].n2] == 0) {
      ans[a[i].n1] = a[i].n2;
      ans[a[i].n2] = a[i].n1;
    }
  }
  for (int i = 1; i <= 2 * n; i++) {
    cout << ans[i] << ' ';
  }
  cout << endl;
  return 0;
}
bool comp(const str &a, const str &b) { return a.num > b.num; }
