#include <bits/stdc++.h>
using namespace std;
vector<int> cnt[256];
const int mod = 1e9 + 7;
const double eps = 1e-9;
int n, k, h;
pair<pair<int, double>, int> a[100001];
vector<int> solve(double time) {
  int it = 1;
  vector<int> res;
  for (int i = (0); i < (n); i++)
    if ((double)(it * h) - time * a[i].first.second < 1e-10)
      it++, res.push_back(a[i].second + 1);
  return res;
}
bool able(double time) {
  int it = 1;
  for (int i = (0); i < (n); i++) {
    double p = (double)(it * h) - time * a[i].first.second;
    if ((double)(it * h) - time * a[i].first.second < 1e-10) it++;
  }
  return it > k;
}
int main() {
  cin >> n >> k >> h;
  for (int i = (0); i < (n); i++) cin >> a[i].first.first, a[i].second = i;
  for (int i = (0); i < (n); i++) cin >> a[i].first.second;
  sort(a, a + n);
  double l = 0, r = 20000000000;
  for (int i = 0; i < 500; i++) {
    double m = (r + l) / 2.0;
    if (able(m))
      r = m;
    else
      l = m;
  }
  vector<int> res = solve(r);
  for (int i = (0); i < (res.size()); i++) cout << res[i] << " ";
}
