#include <bits/stdc++.h>
using namespace std;
bool cmp(const pair<int, pair<int, int> >& x,
         const pair<int, pair<int, int> >& y) {
  return x.first > y.first;
}
int main() {
  int n;
  vector<pair<int, pair<int, int> > > v;
  std::ios::sync_with_stdio(false);
  cin >> n;
  for (int i = 2; i <= (2 * n); ++i) {
    for (int j = 1; j <= i - 1; ++j) {
      int k;
      cin >> k;
      v.push_back(make_pair(k, make_pair(i, j)));
    }
  }
  sort(v.begin(), v.end(), cmp);
  vector<int> mark(2 * n + 1, 0), ans(2 * n + 1, 0);
  for (int i = 0; i < v.size(); ++i) {
    int x = v[i].second.first;
    int y = v[i].second.second;
    if (mark[x] or mark[y]) continue;
    mark[x] = 1;
    mark[y] = 1;
    ans[x] = y;
    ans[y] = x;
  }
  for (int i = 1; i <= 2 * n; ++i) {
    cout << ans[i] << " ";
  }
  return 0;
}
