#include <bits/stdc++.h>
using namespace std;
unordered_set<int> visited;
unordered_set<int>::iterator it;
priority_queue<pair<long long int, pair<int, int> > > A;
int main() {
  ios::sync_with_stdio(false);
  int n, i, j;
  long long int value;
  pair<long long int, pair<int, int> > temp;
  cin >> n;
  int arr[2 * n + 1];
  for (i = 2; i <= 2 * n; ++i) {
    for (j = 1; j < i; ++j) {
      cin >> value;
      A.push(make_pair(value, make_pair(i, j)));
    }
  }
  while (visited.size() < 2 * n) {
    temp = A.top();
    A.pop();
    it = visited.find(temp.second.first);
    if (it != visited.end()) continue;
    it = visited.find(temp.second.second);
    if (it != visited.end()) continue;
    arr[(temp.second).first] = (temp.second).second;
    arr[(temp.second).second] = (temp.second).first;
    visited.insert((temp.second).first);
    visited.insert((temp.second).second);
  }
  for (i = 1; i <= 2 * n; ++i) cout << arr[i] << ' ';
  return 0;
}
