#include <bits/stdc++.h>
using namespace std;
bool vis[1000];
int main() {
  ios::sync_with_stdio(0);
  int t = 1;
  while (t--) {
    int n, x;
    cin >> n;
    vector<int> v[2 * n - 1];
    int ans[2 * n + 1];
    int mx = -1;
    int pos1 = 0, pos2 = 0;
    for (long long i = 0; i < 2 * n - 1; i++) {
      for (long long j = 0; j < i + 1; j++) {
        cin >> x;
        v[i].push_back(x);
        if (x > mx) {
          mx = x;
          pos1 = i;
          pos2 = j;
        }
      }
    }
    ans[pos1 + 2] = pos2 + 1;
    ans[pos2 + 1] = pos1 + 2;
    vis[pos1 + 2] = vis[pos2 + 1] = 1;
    mx = -1;
    for (long long k = 0; k < n - 1; k++) {
      for (long long i = 0; i < 2 * n - 1; i++) {
        for (long long j = 0; j < i + 1; j++) {
          if (!vis[i + 2] && !vis[j + 1] && v[i][j] > mx) {
            mx = v[i][j];
            pos1 = i;
            pos2 = j;
          }
        }
      }
      ans[pos1 + 2] = pos2 + 1;
      ans[pos2 + 1] = pos1 + 2;
      vis[pos1 + 2] = vis[pos2 + 1] = 1;
      mx = -1;
    }
    for (long long i = 1; i < 2 * n + 1; i++) cout << ans[i] << " ";
    cout << endl;
  }
  return 0;
}
