#include <bits/stdc++.h>
using namespace std;
const int N = 200005;
int n, t, k, ret;
int a[N];
int sum[N];
int main() {
  scanf("%d%d%d", &n, &t, &k);
  int all = 0;
  sum[0] = 1;
  a[0] = 1;
  for (int i = 1; i <= t; i++) {
    scanf("%d", &a[i]);
    sum[i] = sum[i - 1] + a[i];
    if (a[i] < a[i - 1]) ret += a[i - 1] - a[i];
  }
  if (ret + a[t] > k || n - t < k) {
    printf("-1\n");
    return 0;
  }
  printf("%d\n", n);
  int fa = 1, now = 2;
  int need = n - t - k;
  for (int i = 1; i <= t; i++) {
    while (now <= sum[i]) {
      printf("%d %d\n", fa, now);
      if (fa != sum[i - 1] && now != sum[i] && need > 0) {
        fa++;
        need--;
      }
      now++;
    }
    fa = sum[i - 1] + 1;
  }
}
