#include <bits/stdc++.h>
const int MAX_N = (int)1e5 + 123;
const double eps = 1e-6;
const int inf = (int)1e9 + 123;
using namespace std;
int n;
multiset<pair<int, pair<int, int> > > q;
bool u[900];
int ans[900];
int main() {
  cin >> n;
  for (int i = 2; i <= 2 * n; i++) {
    for (int j = 1; j < i; j++) {
      int x;
      cin >> x;
      q.insert(make_pair(x, make_pair(i, j)));
    }
  }
  while (!q.empty()) {
    auto it = q.end();
    it--;
    pair<int, int> now = make_pair(it->second.first, it->second.second);
    q.erase(it);
    if (u[now.first] || u[now.second]) continue;
    ans[now.first] = now.second;
    ans[now.second] = now.first;
    u[now.first] = 1, u[now.second] = 1;
  }
  for (int i = 1; i <= 2 * n; i++) cout << ans[i] << ' ';
  return 0;
}
