#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
const int N = 2e5 + 10;
int a[N];
bool comp(PII a,PII b){
return a.first < b.first;
// return a.second < b.second;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
vector<PII> results;
unordered_map<int,int> memo;
int i = -1,j = 0;
int current_len = 0;
int max_len = 0;
while(i < n){
do{
i++;
memo[a[i]]++;
}while(memo[a[i]] <= 1 && i < n);
// while(memo[a[i]] <= 1 && i < n){
// memo[a[i]]++;
// i++;
// }
current_len = i - j;
if(current_len > max_len){
results.clear();
results.push_back({j,i - 1});
max_len = current_len;
}
else if(current_len == max_len){
results.push_back({j,i - 1});
}
// do{
// j++;
// memo[a[j]]--;
// }while(memo[a[i]] > 1 && j < n);
while(memo[a[i]] > 1 && j < n){
memo[a[j]]--;
j++;
}
}
sort(results.begin(),results.end(),comp);
cout<<results.size()<<"\n";
for(auto t : results){
cout<<t.first + 1<<" "<<t.second + 1<<"\n";
}
}
// 64 位输出请用 printf("%lld")