#include <bits/stdc++.h>
using namespace std;

int main() {

    int N; 
    cin >> N;
    vector<int> arr(N+1);
    unordered_map<int,int> freq;
    unordered_set<int> distinct_nums;
    for (int i = 1; i <= N; i++) {
        cin >> arr[i];
        distinct_nums.insert(arr[i]);
    }
    int distinct_count = (int)distinct_nums.size();

    int left = 1, right = 0;
    int formed = 0;
    unordered_map<int,int> window_count;
    int min_len = INT_MAX;
    vector<pair<int,int>> res;

    while (right < N) {
        right++;
        int x = arr[right];
        window_count[x]++;
        if (window_count[x] == 1) formed++;

        while (formed == distinct_count) {
            int cur_len = right - left + 1;
            if (cur_len < min_len) {
                min_len = cur_len;
                res.clear();
                res.emplace_back(left, right);
            } else if (cur_len == min_len) {
                res.emplace_back(left, right);
            }
            // 尝试收缩左边界
            int left_val = arr[left];
            window_count[left_val]--;
            if (window_count[left_val] == 0) formed--;
            left++;
        }
    }

    cout << min_len << " " << (int)res.size() << "\n";
    for (int i = 0; i < (int)res.size(); i++) {
        cout << "[" << res[i].first << "," << res[i].second << "]";
        if (i != (int)res.size() - 1) cout << " ";
    }
    cout << "\n";

    return 0;
}