#include <bits/stdc++.h>
using namespace std;
const int N = 100000 + 5;
int n, k, h;
struct Lemming {
  int id;
  int m, v;
  inline bool operator<(const Lemming &b) const {
    if (m != b.m) return m < b.m;
    return v < b.v;
  }
};
Lemming lem[N];
vector<int> ans;
inline int calc(double t, bool output = false) {
  if (output) ans.clear();
  int nid = 1;
  for (int i = 1; i <= n; ++i) {
    if (1.00 * nid * h <= 1.00 * t * lem[i].v) {
      ++nid;
      if (output) {
        ans.push_back(lem[i].id);
        if (nid > k) break;
      }
    }
  }
  return nid - 1;
}
int main() {
  scanf("%d%d%d", &n, &k, &h);
  for (int i = 1; i <= n; ++i) lem[i].id = i;
  for (int i = 1; i <= n; ++i) scanf("%d", &lem[i].m);
  for (int i = 1; i <= n; ++i) scanf("%d", &lem[i].v);
  sort(lem + 1, lem + n + 1);
  double l = -1, r = 2000000000;
  for (int tt = 1; tt <= 100; ++tt) {
    double mid = (l + r) * 0.5;
    if (calc(mid) >= k) {
      r = mid;
      if (r - l < 1e-6) calc(mid, true);
    } else {
      l = mid;
    }
  }
  for (int i = 0; i < k; ++i) printf("%d ", ans[i]);
  putchar('\n');
  return 0;
}
