#include <bits/stdc++.h>
using namespace std;
pair<int, int> check(int len, vector<int>& ppl){
int n = ppl.size();
int dupes = 0;
unordered_map<int, int> freq;
pair<int, int> ans = {-1, -1};
// add everyone after len
for(int i = len; i < n; i++){
int e = ppl[i];
freq[e]++;
if(freq[e] == 2) dupes++;
}
if(dupes == 0) return {0, len - 1};
for(int i = len; i < n; i++){
int prev = ppl[i - len];
int curr = ppl[i];
// add prev
freq[prev]++;
if(freq[prev] == 2) dupes++;
// remove curr
freq[curr]--;
if(freq[curr] == 1) dupes--;
// check
if(dupes == 0) return {i - len + 1, i};
}
return ans;
}
int main(){
cin.tie(0);
ios::sync_with_stdio(0);
int t, n;
cin >> t >> n;
vector<int> ppl(n);
for(int i = 0; i < n; i++) cin >> ppl[i];
int l = 1;
int r = n;
int m = (l + r) / 2;
pair<int, int> good = {-1, -1};
while(l < r){
// can we do a seg of length m?
pair<int, int> seg = check(m, ppl);
if(seg.first == -1){
l = m + 1;
}
else{
r = m;
good = seg;
}
m = (l + r) / 2;
}
cout << good.first << " " << good.second << "\n";
}