#include <bits/stdc++.h>
using namespace std;
struct Node {
  int a, b, id;
} p[100005];
bool mark[100005];
bool cmp1(const Node &p1, const Node &p2) {
  if (p1.b != p2.b)
    return p1.b > p2.b;
  else
    return p1.a < p2.a;
}
bool cmp2(const Node &p1, const Node &p2) {
  if (p1.a != p2.a)
    return p1.a > p2.a;
  else
    return p1.b > p2.b;
}
int main() {
  int n, p1, k;
  cin >> n >> p1 >> k;
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &p[i].a, &p[i].b);
    p[i].id = i + 1;
  }
  sort(p, p + n, cmp1);
  sort(p, p + n - p1 + k, cmp2);
  for (int i = 0; i < k; i++) mark[p[i].id] = true;
  sort(p, p + n - p1 + k, cmp1);
  p1 -= k;
  for (int i = 0; i < n; i++) {
    if (k && mark[p[i].id])
      --k;
    else if (!k && p1) {
      mark[p[i].id] = true;
      --p1;
    }
  }
  for (int i = 1; i <= n; i++)
    if (mark[i]) printf("%d ", i);
  printf("\n");
  return 0;
}
