#include <bits/stdc++.h>
using namespace std;
vector<pair<int, pair<int, int> > > arr;
bool cmp(pair<int, pair<int, int> > a, pair<int, pair<int, int> > b) {
  return (a.first > b.first ? true : (a.first < b.first ? false : true));
}
map<int, bool> sudah;
int hasil[800];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i < 2 * n; ++i) {
    for (int j = 0; j < i; ++j) {
      int d;
      scanf("%d", &d);
      arr.push_back(make_pair(d, make_pair(j, i)));
    }
  }
  sort(arr.begin(), arr.end(), cmp);
  for (int i = 0; i < arr.size(); ++i) {
    if (sudah[arr[i].second.first] || sudah[arr[i].second.second]) continue;
    hasil[arr[i].second.first] = arr[i].second.second;
    hasil[arr[i].second.second] = arr[i].second.first;
    sudah[arr[i].second.first] = true;
    sudah[arr[i].second.second] = true;
  }
  for (int i = 0; i < 2 * n; ++i) {
    if (i == 0)
      printf("%d", hasil[i] + 1);
    else
      printf(" %d", hasil[i] + 1);
  }
  printf("\n");
}
