#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 5;
const double oo = 1e9, EPS = 1e-15;
int n, k, h, ans[MAXN], id[MAXN];
struct lem {
  int id, m, v;
  bool operator<(const lem &o) const {
    return make_pair(m, v) < make_pair(o.m, o.v);
  }
} in[MAXN];
bool check(double t) {
  int idx = k;
  for (int i = n - 1; i >= 0 && idx > 0; --i) {
    if (idx * h <= t * in[i].v + EPS) ans[--idx] = in[i].id + 1;
  }
  return idx == 0;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k >> h;
  for (int i = 0; i < n; ++i) {
    cin >> in[i].m;
    in[i].id = i;
  }
  for (int i = 0; i < n; ++i) cin >> in[i].v;
  sort(in, in + n);
  double lo = 0, hi = oo;
  for (int it = 0; it < 100; ++it) {
    double m = (lo + hi) / 2;
    if (check(m))
      hi = m;
    else
      lo = m;
  }
  check(hi);
  for (int i = 0; i < k; ++i) cout << ans[i] << " \n"[i == k - 1];
  return 0;
}
