#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
const double eps = 1e-15;
vector<int> v;
struct Lemming {
  int num;
  double m, v;
} a[maxn];
int n, k;
double h;
int ans[maxn];
bool cmp(const Lemming &x, const Lemming &y) {
  if (x.m != y.m)
    return x.m < y.m;
  else if (x.v != y.v)
    return x.v < y.v;
  return 0;
}
bool check(double t) {
  int sum = 1;
  for (int i = 1; i <= n && sum <= k; i++) {
    if ((sum * 1.0 * h) <= t * a[i].v) {
      ans[sum] = a[i].num;
      sum++;
    }
  }
  if (sum == k + 1)
    return true;
  else
    return false;
}
int main() {
  while (~scanf("%d%d%lf", &n, &k, &h)) {
    for (int i = 1; i <= n; i++) scanf("%lf", &a[i].m);
    for (int i = 1; i <= n; i++) {
      scanf("%lf", &a[i].v);
      a[i].num = i;
    }
    sort(a + 1, a + 1 + n, cmp);
    double left = 0, right = 1e9, mid;
    for (int i = 0; i < 100; i++) {
      mid = (left + right) / 2.0;
      if (check(mid)) {
        right = mid;
        v.clear();
        for (int i = 1; i <= k; i++) v.push_back(ans[i]);
      } else
        left = mid;
    }
    for (int i = 0; i < v.size(); i++) {
      printf("%d", v[i]);
      if (i != v.size() - 1) printf(" ");
    }
    printf("\n");
    v.clear();
  }
}
