#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
int p[maxn];
pair<int, int> a[maxn];
vector<int> ans;
int n, k, h;
bool cmp(int i, int j) { return a[i] < a[j]; }
bool func(double t) {
  ans.clear();
  int m = k;
  for (int i = n - 1; i >= 0 && m > 0; --i) {
    long long x = (long long)a[p[i]].second * t / h;
    if (x >= m) ans.push_back(p[i]), --m;
  }
  reverse(ans.begin(), ans.end());
  if (int((ans).size()) >= k) return true;
  return false;
}
int main() {
  scanf("%d %d %d", &n, &k, &h);
  for (int i = 0; i < (n); ++i) scanf("%d", &a[i].first);
  for (int i = 0; i < (n); ++i) scanf("%d", &a[i].second);
  for (int i = 0; i < (n); ++i) p[i] = i;
  sort(p, p + n, cmp);
  double l = 0, r = 2000000500;
  for (int it = 0; it < (100); ++it) {
    double mid = (l + r) * 0.5;
    if (func(mid))
      r = mid;
    else
      l = mid;
  }
  if (func(l))
    for (int i = 0; i < (k); ++i) printf("%d ", ans[i] + 1);
  else if (func(r))
    for (int i = 0; i < (k); ++i) printf("%d ", ans[i] + 1);
  puts("");
  return 0;
}
