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