#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:64000000")
using namespace std;
void __never(int a) { printf("\nOPS %d", a); }
int n, k, h;
struct LEMM {
  int m, v, num;
} L[100500];
bool le(const LEMM& A, const LEMM& B) {
  if (A.m == B.m) return A.v < B.v;
  return A.m < B.m;
}
int ans[100500];
bool check(double t) {
  int i = 1;
  for (int a = (1); a <= (n); a++)
    if (t * L[a].v >= (double)i * h) ans[i++] = L[a].num;
  return (i > k);
}
void sol() {
  for (int a = (1); a <= (n); a++) L[a].num = a;
  sort(L + 1, L + n + 1, le);
  double mi = 0., ma = (double)(1000000000);
  for (int a = (1); a <= (100); a++) {
    double sr = (mi + ma) * 0.5;
    if (check(sr))
      ma = sr;
    else
      mi = sr;
  }
  check(ma);
  for (int a = (1); a <= (k); a++) printf("%d ", ans[a]);
}
int main() {
  cin >> n >> k >> h;
  for (int a = (1); a <= (n); a++) scanf("%d", &L[a].m);
  for (int a = (1); a <= (n); a++) scanf("%d", &L[a].v);
  sol();
  return 0;
}
