#include <bits/stdc++.h>
using namespace std;
int n, k, h;
const int maxn = 100002;
pair<int, pair<int, int> > f[maxn];
bool ff(pair<int, pair<int, int> > p1, pair<int, pair<int, int> > p2) {
  return (p1.first < p2.first) ||
         (p1.first == p2.first && p1.second < p2.second);
}
void dih(long double l, long double r) {
  long double time;
  int count = 0;
  for (int i = 0; i < 300; i++) {
    count = 0;
    long double m = (r + l) / 2.0;
    for (int j = 0; j < n; j++) {
      time = (1.0 * (count + 1) * h / f[j].second.first);
      if (time <= m) count++;
    }
    if (count < k)
      l = m;
    else
      r = m;
  }
  count = 0;
  for (int i = 0; i < n; i++) {
    time = (1.0 * (count + 1) * h / f[i].second.first);
    if (time <= r) {
      cout << f[i].second.second + 1 << ' ';
      count++;
    }
  }
}
int main() {
  cin >> n >> k >> h;
  for (int i = 0; i < n; i++) {
    cin >> f[i].first;
    f[i].second.second = i;
  }
  for (int i = 0; i < n; i++) cin >> f[i].second.first;
  sort(f, f + n, ff);
  dih(0.0, 1000000001.0);
  return 0;
}
