output_description: Print the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      s_{1}s_{2}s_{3}
attempt: n = int(input())
  a = list(map(int, input().split()))
  ans = 0
  a_max = max(a)
  a_min = min(a)
  if a_min >= 0:
      adding = a_max
  elif a_min < 0 and a_max > 0:
      if abs(a_max) >= abs(a_min):
          adding = a_max
      else:
          adding = a_min
  else:
      adding = a_min
  ind = a.index(adding)
  proc = []
  for i in range(n):
      ans += 1
      a[i] += adding
      proc.append([ind + 1, i + 1])
  for i in range(n - 1):
      ans += 1
      a[i + 1] += a[i]
      proc.append([i + 1, i + 2])
  print(ans)
  for i in range(len(proc)):
      print(proc[i][0], proc[i][1])
  
problem_description: Statement
  
  Snuke has a grid consisting of three squares numbered 1, 2 and 3. In each
  square, either `0` or `1` is written. The number written in Square i is s_i.
  
  Snuke will place a marble on each square that says `1`. Find the number of
  squares on which Snuke will place a marble.
samples: [{"input": "101", "output": "2\n    \n\n  * A marble will be placed on Square 1 and 3.\n\n* * *"}, {"input": "000", "output": "0\n    \n\n  * No marble will be placed on any square."}]