#include <bits/stdc++.h>   #pragma warning(disable : 4996)   using namespace std;   int IT_MAX = 1 << 17;   const long long MOD = 5000000;   const int INF = 1034567891;   const long long LL_INF = 1234567890123456789ll;   const double PI = 3.141592653589793238;   const double ERR = 1E-11;   int in[200050];   int lr[200050][2];   int v[200050];   int main() {     int N, T, K, i, j;     scanf( %d %d %d , &N, &T, &K);     for (i = 1; i <= T; i++) scanf( %d , &in[i]);     in[0] = 1;     for (i = 1; i < T; i++) {       lr[i][1] = in[i] - 1;       lr[i][0] = max(0, in[i] - in[i + 1]);     }     lr[T][0] = lr[T][1] = in[T];     int mn = 0, mx = 0;     for (i = 1; i <= T; i++) mn += lr[i][0], mx += lr[i][1];     if (K < mn || mx < K) return !printf( -1 n );     int t = K - mn;     for (i = 1; i <= T; i++) {       int t2 = min(t, lr[i][1] - lr[i][0]);       t -= t2;       v[i] = in[i] - (lr[i][0] + t2);     }     v[0] = 1;     printf( %d n , N);     int pst = 1;     for (i = 1; i <= T; i++) {       int st = pst + in[i - 1];       for (j = 0; j < v[i - 1]; j++) printf( %d %d n , pst + j, st + j);       for (j = v[i - 1]; j < in[i]; j++) printf( %d %d n , pst, st + j);       pst = st;     }     return 0;   }   