#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e+5 + 10;
pair<pair<int, int>, int> lem[MAXN];
int n, k, h, ans[MAXN];
bool check(double t) {
  int kk = 0;
  for (int i = 0; i < n; i++) {
    int v = lem[i].first.second;
    if (double((kk + 1) * h) <= t * v) ans[kk++] = lem[i].second;
    if (kk >= k) return true;
  }
  return false;
}
int main() {
  cin >> n >> k >> h;
  for (int i = 0; i < n; i++) cin >> lem[i].first.first, lem[i].second = i;
  ;
  for (int i = 0; i < n; i++) cin >> lem[i].first.second;
  sort(lem, lem + n);
  double l = 0, r = 1e+9;
  for (int i = 0; i < 400; i++) {
    double mid = (r + l) / 2;
    if (check(mid))
      r = mid;
    else
      l = mid;
  }
  if (check(r)) {
    for (int i = 0; i < k; i++) {
      cout << ans[i] + 1 << ' ';
    }
  }
  return 0;
}
