#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
long long lcm(long long a, long long b) { return a * (b / gcd(a, b)); }
int mat[1000][1000];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int n;
  cin >> n;
  for (int i = 1; i < n * 2; ++i) {
    for (int j = 0; j < i; ++j) {
      cin >> mat[i][j];
    }
  }
  vector<int> taken(2 * n + 1, 0);
  vector<int> p(2 * n + 1, -1);
  int cnt = 0;
  while (cnt < 2 * n) {
    int best = 0;
    int a = -1, b = -1;
    for (int i = 1; i < n * 2; ++i) {
      if (taken[i]) continue;
      for (int j = 0; j < i; ++j) {
        if (taken[j]) continue;
        if (mat[i][j] > best) {
          best = mat[i][j];
          a = i, b = j;
        }
      }
    }
    cnt += 2;
    if (a >= 0 && b >= 0) {
      taken[a] = 1;
      taken[b] = 1;
      p[a] = b;
      p[b] = a;
    }
  }
  for (int i = 0; i < 2 * n; ++i) {
    if (i) cout << " ";
    cout << p[i] + 1;
  }
  cout << endl;
  return 0;
}
