/*
標題:日誌統計
小明維護着一個程序員論壇。現在他收集了一份"點贊"日誌,日誌共有N行。其中每一行的格式是:
ts id
表示在ts時刻編號id的帖子收到一個"贊"。
現在小明想統計有哪些帖子曾經是"熱帖"。如果一個帖子曾在任意一個長度爲D的時間段內收到不少於K個贊,小明就認爲這個帖子曾是"熱帖"。
具體來說,如果存在某個時刻T滿足該帖在[T, T+D)這段時間內(注意是左閉右開區間)收到不少於K個贊,該帖就曾是"熱帖"。
給定日誌,請你幫助小明統計出所有曾是"熱帖"的帖子編號。
*/
import java.util.*;
import static java.util.Collections.sort;
public class test08 {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();//日誌的行數
int d = scanner.nextInt();//時間間隔
int k = scanner.nextInt();//熱詞的最低頻率
int a[] = new int[n];//時間的數組
int b[] = new int[n];//帖子的編號
Map<Integer, Integer> map01 = new HashMap<Integer, Integer>();//統計k
Map<Integer, Integer> map02 = new HashMap<Integer, Integer>();//判斷是否是熱帖
List<Integer> e = new ArrayList<Integer>();
a[0] = scanner.nextInt();
b[0] = scanner.nextInt();
map01.put(b[0], 1);
map02.put(b[0], a[0]);
for (int i = 1; i < n; i++) {
a[i] = scanner.nextInt();
b[i] = scanner.nextInt();
if (map01.containsKey(b[i])) {
int time = map02.get(b[i]);
if (a[i] - time < d) {//如果在熱帖規定的範圍內
int count = map01.get(b[i]);
map01.put(b[i], count+1);
}
} else {
map01.put(b[i], 1);
map02.put(b[i], a[i]);
}
}
System.out.println();
Set<Integer> set = map01.keySet();
Iterator<Integer> it = set.iterator();
while (it.hasNext()) {
int key = it.next();
if (map01.get(key) >= k) {
e.add(key);
}
}
sort(e);
Iterator w = e.iterator();
while (w.hasNext()) {
System.out.println(w.next());
}
}
}