#include <bits/stdc++.h>
using namespace std;
priority_queue<pair<int, pair<int, int> > > pq;
bool visited[900];
int answer[900];
int main() {
  int n;
  scanf("%d", &n);
  int doisn = 2 * n;
  memset(visited, 0, sizeof visited);
  memset(answer, false, sizeof answer);
  for (int i = 2; i <= doisn; i++) {
    for (int j = 1; j < i; j++) {
      int tmp;
      scanf("%d", &tmp);
      pq.push(make_pair(tmp, make_pair(i, j)));
    }
  }
  while (!pq.empty()) {
    pair<int, pair<int, int> > wab = pq.top();
    int a = wab.second.first;
    int b = wab.second.second;
    pq.pop();
    if (!visited[a] && !visited[b]) {
      answer[a] = b;
      answer[b] = a;
      visited[a] = visited[b] = true;
    }
  }
  for (int i = 1; i <= doisn; i++) {
    printf("%d", answer[i]);
    if (i < doisn) printf(" ");
  }
  printf("\n");
  return 0;
}
