// اَللَهُمَ صَلِ عَلَىَ مُحَمَدٍ وَ آلِ مُحَمَدٍ
#include "bits/stdc++.h"
using namespace std ;
#define int long long
#define pb push_back
#define si size()
#define fi first
#define se second
#define all(a) a.begin(),a.end()
#define applejuice ios::sync_with_stdio(false) ; cin.tie(nullptr) ; cout.tie(nullptr) ;
const int inf=1e18 ;
const int mod=1e9+7 ;
const int maxn=5*1e5+7 ;
int tt=1 ;
int a[maxn] , cnt[maxn] ;
void solve() {
int t , n ;
cin >> t >> n ;
for(int i=0 ; i<n ; i++) {
cin >> a[i] ;
}
int st=1 , en=n , mid , mx=0 , l=-1 , r=-1 ;
while(st<=en) {
mid=(st+en)/2 ;
for(int i=0 ; i<n ; i++) {cnt[a[i]]+=1 ;}
for(int i=0 ; i<mid ; i++) {cnt[a[i]]-=1 ;}
int cnt0=0 , cnt1=0 ;
for(int i=0 ; i<t ; i++) {
if(cnt[i]==0) {cnt0+=1 ;}
if(cnt[i]==1) {cnt1+=1 ;}
}
bool A=0 ;
if(cnt0+cnt1==t && cnt1>mx) {
mx=cnt1 ;
l=0 ;
r=mid-1 ;
A=1 ;
}
for(int i=1 ; i+mid-1<n ; i++) {
cnt[a[i-1]]+=1 ;
if(cnt[a[i-1]]==2) {cnt1-=1 ;}
if(cnt[a[i-1]]==1) {cnt0-=1 ; cnt1+=1 ;}
cnt[a[i+mid-1]]-=1 ;
if(cnt[a[i+mid-1]]==1) {cnt1+=1 ;}
if(cnt[a[i+mid-1]]==0) {cnt1-=1 ; cnt0+=1 ;}
if(cnt0+cnt1==t && cnt1>mx) {
mx=cnt1 ;
l=i ;
r=i+mid-1 ;
A=1 ;
}
}
fill(cnt,cnt+t,0) ;
if(A) {en=mid-1 ;}
else {st=mid+1 ;}
//cout << mid << endl ;
}
cout << l << " " << r ;
}
signed main() {
//wrong
applejuice ;
//cin >> tt ;
while(tt--) {solve() ;}
}
/*
4 5
1 3 0 2 3
ans : 1 1
3 6
1 0 2 2 0 1
ans : 0 2
4 8
0 2 0 1 2 1 3 3
ans : 2 6
3 6
1 1 2 0 1 0
ans : 0 3
4 6
0 1 2 0 3 2
ans : 2 3
5 13
3 3 3 1 2 0 3 3 2 1 4 1 0
ans : 1 9
*/