#include <bits/stdc++.h>
using namespace std;
const int MaxN = 223456;
struct prik {
  int a, b, i;
} a[MaxN];
bool cmp1(prik p1, prik p2) {
  if (p1.b > p2.b) return true;
  if (p1.b < p2.b) return false;
  if (p1.a < p2.a) return true;
  if (p1.a > p2.a) return false;
  return p1.i < p2.i;
}
bool cmp2(prik p1, prik p2) {
  if (p1.a > p2.a) return true;
  if (p1.a < p2.a) return false;
  if (p1.b > p2.b) return true;
  if (p1.b < p2.b) return false;
  return p1.i < p2.i;
}
set<int> s;
int u[MaxN];
int main(void) {
  int i, j, n, p, k;
  while (scanf("%d %d %d", &n, &p, &k) != EOF) {
    memset(u, 0, sizeof(u));
    for (i = 0; i < n; i++) {
      scanf("%d %d", &a[i].a, &a[i].b);
      a[i].i = i + 1;
    }
    sort(a, a + n, cmp1);
    sort(a, a + n - (p - k), cmp2);
    for (i = 0; i < k; i++) {
      printf("%d ", a[i].i);
      u[a[i].i] = 1;
    }
    sort(a, a + n, cmp1);
    for (i = n - 1; i > 0; i--) {
      if (u[a[i].i]) break;
    }
    i++;
    for (j = 0; j < p - k; j++) {
      printf("%d ", a[i].i);
      i++;
    }
    printf("\n");
  }
  return 0;
}
