#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10, MOD = 1e9 + 7;
int n, k;
long double h;
pair<int, pair<int, int>> a[MAXN];
vector<int> ans;
bool check(long double t, bool type = 0) {
  int p = 0;
  for (int j = 1; j <= k; j++) {
    if (p >= n) return 0;
    while (t * a[p].second.second < j * h) {
      p++;
      if (p >= n) return 0;
    }
    if (type) {
      ans.push_back(a[p].first);
    }
    p++;
  }
  return 1;
}
bool cmp(pair<int, pair<int, int>> a, pair<int, pair<int, int>> b) {
  if (a.second.first != b.second.first) return a.second.first < b.second.first;
  return a.second.second < b.second.second;
}
int main() {
  scanf("%d %d %Lf", &n, &k, &h);
  for (int i = 1; i <= n; i++) {
    a[i - 1].first = i;
  }
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i].second.first);
  }
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i].second.second);
  }
  sort(a, a + n, cmp);
  long double l = 0, r = 4e9, mid;
  for (int i = 0; i < 500; i++) {
    mid = (r + l) / 2;
    if (check(mid)) {
      r = mid;
    } else {
      l = mid;
    }
  }
  check(r, 1);
  for (int i : ans) {
    printf("%d ", i);
  }
  printf("\n");
}
