#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")