#include <iostream>
#include <unordered_set>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int>a(n);
for(int i=0;i<n;i++){
cin >> a[i];
}
int left=0; //左指针
int maxchangdu=0; //最长的长度
vector<pair<int,int>>daan; //存放l和r的值
unordered_set<int>jiancha; //用于检查是否重复
for(int right=0;right<n;right++){
while(jiancha.find(a[right])!=jiancha.end()){
jiancha.erase(a[left]);
left++;
}
jiancha.insert(a[right]);
int changdu=right-left+1;
if(changdu>maxchangdu){
daan.clear();
maxchangdu = changdu;
daan.push_back({left+1,right+1});
}
else if(changdu == maxchangdu){
daan.push_back({left+1,right+1});
}
}
cout << daan.size() << endl;
for(auto it:daan){ //遍历输出
cout << it.first << " " << it.second << endl;
}
}
// 64 位输出请用 printf("%lld")