#include <bits/stdc++.h>
using namespace std;
const int maxn = 2250000 + 10;
const int mod = 1e9 + 7;
int n, a[1600];
vector<pair<int, int> > vec[maxn];
map<int, int> m;
int sum[1600];
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= (n); i++) {
    scanf("%d", &a[i]);
    sum[i] = sum[i - 1] + a[i];
  }
  int k = 0;
  for (int i = 1; i <= (n); i++) {
    for (int j = i; j <= n; j++) {
      pair<int, int> p(j, i);
      int dis = sum[j] - sum[i - 1];
      if (!m[dis]) m[dis] = ++k;
      vec[m[dis]].push_back(p);
    }
  }
  int MAX = 0, idx = 0;
  for (int i = 1; i <= (k); i++) {
    int cnt = 0;
    int pre = 0;
    sort(vec[i].begin(), vec[i].end());
    for (int j = 0; j < vec[i].size(); j++) {
      if (vec[i][j].second > pre) {
        ++cnt;
        pre = vec[i][j].first;
      }
      if (cnt > MAX) {
        MAX = cnt;
        idx = i;
      }
    }
  }
  printf("%d\n", MAX);
  int pre = 0;
  for (int i = 0; i < vec[idx].size(); i++) {
    if (vec[idx][i].second > pre) {
      printf("%d %d\n", vec[idx][i].second, vec[idx][i].first);
      pre = vec[idx][i].first;
    }
  }
  return 0;
}
