#include<bits/stdc++.h>
using namespace std;
const int maxN=1e6+10;
struct Node{
int l,r,mon;
}a[maxN];
queue<int>q;
int d[maxN];
int n,m,ans,k,tot;
bool cmp(Node,Node);
int main(){
cin>>n>>m;
for (int i=1;i<=n;i++){
int x;
cin>>x;
q.push(x);
}
for (int i=1;i<=n;){
if (i>2){
d[q.front()]--;
if (!d[q.front()]) ans--;
q.pop();
}
while (ans<m){
if (!d[q.front()]) ans++;
d[q.front()]++;
k++;
}
a[++tot]={i,k,k-i+1};
while (d[q.front()]>1){
d[q.front()]--;
i++;
q.pop();
}
}
sort(a+1,a+tot+1,cmp);
for (int i=1;i<=tot;i++) cout<<a[i].l<<' '<<a[i].r<<endl;
return 0;
}
inline bool cmp(Node a,Node b){
if (a.mon!=b.mon) return a.mon<b.mon;
return a.l<b.l;
}
求助大佬……