#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;
}