#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-8;
const int MAXN = 100000;
struct SLem {
  int m;
  int v;
  int num;
};
SLem lem[MAXN];
int ans[MAXN];
int n, h, k;
inline bool cmp(const SLem &a, const SLem &b) {
  return (a.m == b.m) ? a.v > b.v : a.m > b.m;
}
bool check(double limit) {
  int now = k;
  for (int i = 0; i < n; i++) {
    if ((double)h * now <= limit * lem[i].v) {
      ans[now] = i;
      if (--now == 0) {
        return true;
      }
    }
  }
  return false;
}
void init(void) {
  cin >> n >> k >> h;
  for (int i = 0; i < n; i++) {
    cin >> lem[i].m;
  }
  for (int i = 0; i < n; i++) {
    cin >> lem[i].v;
    lem[i].num = i + 1;
  }
}
void solve(void) {
  sort(lem, lem + n, cmp);
  double l = 0, r = 1e9 + 7;
  for (int i = 0; i < 200; i++) {
    double m = (l + r) * 0.5;
    check(m) ? r = m : l = m;
  }
  check(r);
  cout << lem[ans[1]].num;
  for (int i = 2; i <= k; i++) {
    cout << ' ' << lem[ans[i]].num;
  }
  cout << endl;
}
int main(void) {
  ios::sync_with_stdio(false);
  init();
  solve();
  return 0;
}
