#include <bits/stdc++.h>
using namespace std;
int n, k, h;
bool poss(long double m, vector<pair<int, pair<int, int> > >& lems,
          vector<int>& res) {
  int j = 1;
  for (int i = 0; i < n && j <= k; ++i) {
    if (j * h < m * lems[i].second.first) {
      res[j - 1] = lems[i].second.second;
      ++j;
    }
  }
  if (j > k) {
    return true;
  } else {
    return false;
  }
}
int main(void) {
  long double l, r, m;
  int iter = 128;
  int mass, v;
  vector<pair<int, pair<int, int> > > lems;
  vector<int> res;
  long double ans;
  cin >> n >> k >> h;
  res.assign(k, 0);
  for (int i = 0; i < n; ++i) {
    cin >> mass;
    lems.push_back(make_pair(mass, make_pair(0, i)));
  }
  for (int i = 0; i < n; ++i) {
    cin >> v;
    lems[i].second.first = v;
  }
  sort(lems.begin(), lems.end());
  l = 0, r = 1e9 + 1;
  while (iter > 0) {
    m = (l + r) / 2;
    if (poss(m, lems, res)) {
      r = m;
      ans = m;
    } else {
      l = m;
    }
    --iter;
  }
  poss(ans, lems, res);
  for (int i = 0; i < k; ++i) {
    cout << (res[i] + 1) << " ";
  }
  cout << "\n";
  return 0;
}
