#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
int n, k, h, v[111000], m[111000];
pair<pair<int, int>, int> mord[111000];
int res[111000], cur[111000];
bool go(double tm) {
  int i = 0;
  for (int j = 0, _n = (k); j < _n; j++) {
    while (i < n && (j + 1) * (double)h / (double)v[mord[i].second] > tm) ++i;
    if (i == n) return false;
    cur[j] = mord[i].second;
    ++i;
  }
  return true;
}
int main() {
  scanf("%d%d%d", &n, &k, &h);
  for (int i = 0, _n = (n); i < _n; i++) {
    scanf("%d", m + i);
  }
  for (int i = 0, _n = (n); i < _n; i++) {
    scanf("%d", v + i);
    mord[i] = make_pair(pair<int, int>(m[i], v[i]), i);
  }
  sort(mord, mord + n);
  double left = 0, right = k * (double)h * 2;
  for (int step = 0, _n = (100); step < _n; step++) {
    double mid = (left + right) / 2;
    if (go(mid)) {
      memcpy(res, cur, sizeof res);
      right = mid;
    } else
      left = mid;
  }
  for (int i = 0, _n = (k); i < _n; i++) printf(" %d" + (i == 0), res[i] + 1);
  printf("\n");
  return 0;
}
