#include <bits/stdc++.h>
using namespace std;
int m[100005], v[100005], selected[100005];
vector<pair<pair<int, int>, int> > V;
int k, n, h;
bool check(long double time) {
  long double pos = 1.0;
  int id = 0;
  for (int i = 0; i < n; i++) {
    if (V[i].first.second * 1.0 * time >= pos * h) {
      selected[id++] = V[i].second;
      pos += 1.0;
    }
  }
  return (id >= k);
}
int main() {
  V.clear();
  cin >> n >> k >> h;
  for (int i = 0; i < n; ++i) cin >> m[i];
  for (int i = 0; i < n; ++i) cin >> v[i];
  for (int i = 0; i < n; ++i) V.push_back(make_pair(make_pair(m[i], v[i]), i));
  sort((V).begin(), (V).end());
  long double l = 0, r = 1000000009, mid;
  for (int i = 0; i < 200; i++) {
    mid = (l + r) * 0.5;
    if (check(mid))
      r = mid;
    else
      l = mid;
  }
  check(r);
  for (int i = 0; i < k; ++i) {
    if (i != 0) cout << " ";
    cout << selected[i] + 1;
  }
  cout << endl;
  return 0;
}
