#include <bits/stdc++.h>

using namespace std;
const int maxn=100;
int N;
int arr[maxn];
vector<pair<int,int>> out;
#define mp(a,b) make_pair(a,b)
int main(){
  scanf("%d",&N);
  for(int i=1;i<=N;i++){
    scanf("%d",arr+i);
  }
HERE:
  int m=*max_element(arr+1,arr+1+N);
  int n=*min_element(arr+1,arr+1+N);
  if(m<=0){
    for(int i=N;i>1;i--){
      if(arr[i]<arr[i-1]){
        arr[i-1]+=arr[i];
        out.push_back(mp(i,i-1));
      }
    }
  }
  else if(n>=0){
    for(int i=2;i<=N;i++){
      if(arr[i]<arr[i-1]){
        arr[i]+=arr[i-1];
        out.push_back(mp(i-1,i));
      }
    }
  }
  else {
    int f=m>-n?m:n;
    for(int i=1;i<=N;i++){
      arr[i]+=f;
    }
    goto HERE;
  }
  printf("%d\n",int(out.size()));
  for(int i=0;i<out.size();i++){
    printf("%d %d\n",out[i].first,out[i].second);
  }
}
