#include <bits/stdc++.h>
using namespace std;
pair<int, int> num[100005];
bool cmp(pair<int, int> a, pair<int, int> b) { return (a.first > b.first); }
int ans[200005];
vector<int> ch[200005];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = (1); i <= (n); i++) {
    scanf("%d", &num[i].first);
    num[i].second = i * 2;
  }
  sort(num + 1, num + n + 1, cmp);
  int tot = n;
  for (int i = (1); i <= (n); i++) {
    int d = num[i].first, x = num[i].second;
    ans[i] = x--;
    if (i + d > tot) {
      ans[++tot] = x;
    } else {
      ch[i + d - 1].push_back(x);
    }
  }
  for (int i = (1); i <= (tot - 1); i++) {
    printf("%d %d\n", ans[i], ans[i + 1]);
  }
  for (int i = (1); i <= (tot); i++) {
    for (auto v : ch[i]) printf("%d %d\n", ans[i], v);
  }
  return 0;
}
