#include <bits/stdc++.h>
using namespace std;
int a[200010], c[200010];
int main() {
  int n, t, k;
  scanf("%d%d%d", &n, &t, &k);
  for (int i = 1; i <= t; i++) scanf("%d", &a[i]);
  a[0] = (k > n - t ? 2 : 1);
  for (int i = 0; i <= t; i++) {
    c[i] = min(a[i], a[i + 1]);
    k -= a[i] - c[i];
  }
  if (k < 0 || a[0] > 1) {
    puts("-1");
    return 0;
  }
  for (int i = t - 1; i > 0; i--) {
    int q = min(c[i] - 1, k);
    k -= q;
    c[i] -= q;
  }
  int id = 1;
  printf("%d\n", n);
  for (int i = 0; i < t; i++) {
    for (int j = 0; j < a[i + 1]; j++)
      printf("%d %d\n", id + j % c[i], id + a[i] + j);
    id += a[i];
  }
}
