#include <bits/stdc++.h>
const int maxn = 100010;
using namespace std;
int height[maxn], speed[maxn], v[maxn];
int ord[maxn], B[maxn];
int N, K, H;
inline bool cmp(const int &a, const int &b) {
  if (height[a] == height[b]) return speed[a] < speed[b];
  return height[a] < height[b];
}
const long double eps = 0.000001;
inline bool can(long double cant, int ok) {
  int now = 1;
  for (int i = 1; i <= N; ++i) {
    long double t = ((H * now) / (1.0 * speed[ord[i]]));
    if (t < cant) {
      ++now;
      if (ok) B[++B[0]] = ord[i];
    }
  }
  if (ok) {
    for (int i = 1; i <= K; ++i) printf("%d ", B[i]);
  }
  return now > K;
}
const long double inf = 100000000;
int main() {
  scanf("%d %d %d\n", &N, &K, &H);
  for (int i = 1; i <= N; ++i) scanf("%d", &height[i]);
  for (int i = 1; i <= N; ++i) {
    scanf("%d", &speed[i]);
    ord[i] = i;
  }
  sort(ord + 1, ord + N + 1, cmp);
  long double sol = inf;
  long double lf = 0, rt = 1e19;
  for (int i = 0; i <= 200; i++) {
    long double mid = (lf + rt) / 2.0;
    if (can(mid, 0)) {
      rt = mid;
      sol = mid;
    } else
      lf = mid;
  }
  can(sol, 1);
  return 0;
}
