#include<iostream>
#include<algorithm>
using namespace std;
const int N=100010;
struct node{
int x,y;
};
bool compareByX(const node& a,const node& b){
return a.x < b.x;
}
int main(){
int n,d,k,ans[N]={0},q[N]={0},hh=0,tt=-1,cnt[N]={0};
node t[N];
cin>>n>>d>>k;
for(int i=0;i<n;i++){
cin>>t[i].x>>t[i].y;
}
sort(t,t+n,compareByX);
for(int i=0;i<n;i++){
ans[t[i].y]++;
q[++tt]=i;
while(hh>=tt&&t[i].x-t[q[hh]].x+1>d){
ans[t[q[hh]].y]--;
hh++;
}
if(ans[t[i].y]>=k){
cnt[t[i].y]=1;
}
}
for(int i=0;i<100005;i++){
if(cnt[i]) cout<<i<<"\n";
}
return 0;
}