#include <bits/stdc++.h>
using namespace std;
int a[111111], N;
stack<int> s;
int main(int argc, char *argv[]) {
  int ans = 0;
  scanf("%d", &N);
  for (int i = 0; i < N; i++) scanf("%d", a + i);
  ans = a[0];
  for (int i = 0; i < N - 1; i++)
    if (a[i + 1] > a[i]) ans += a[i + 1] - a[i];
  printf("%d\n", ans);
  int last = 0;
  for (int i = 0; i < N + 1; i++) {
    if (a[i] < last) {
      for (int j = 0; j < last - a[i]; j++) {
        printf("%d %d\n", s.top(), i);
        s.pop();
      }
    } else
      for (int j = 0; j < a[i] - last; j++) s.push(i + 1);
    last = a[i];
  }
  return 0;
}
