#include <bits/stdc++.h>
using namespace std;
template <class T>
inline int countbit(T n) {
  return (n == 0) ? 0 : (1 + countbit(n & (n - 1)));
}
template <class T>
inline T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
const double EPS = 1e-9;
const double PI = acos(-1.0);
int n, k, h;
int ind[100005];
int vel[100005];
int mass[100005];
int ret[100005];
bool can(double mid) {
  int cnt = 0;
  double step = k;
  for (int j = n - 1; j >= 0 && cnt <= k; j--) {
    double tempo = step * h / ((double)vel[ind[j]]);
    if (tempo < mid - EPS || fabs(tempo - mid) < EPS) cnt++, step--;
  }
  return cnt >= k;
}
bool cmp(int i, int j) {
  if (mass[i] != mass[j]) return mass[i] < mass[j];
  return vel[i] < vel[j];
}
int main(void) {
  scanf("%d %d %d", &n, &k, &h);
  for (int i = (0); i < int(n); i++) scanf("%d", &mass[i]);
  for (int i = (0); i < int(n); i++) scanf("%d", &vel[i]);
  for (int i = (0); i < int(n); i++) ind[i] = i;
  sort(ind, ind + n, cmp);
  double l = 0, r = 10E9 + 100;
  for (int i = (0); i < int(100); i++) {
    double mid = (l + r) / 2;
    if (can(mid))
      r = mid;
    else
      l = mid;
  }
  double mid = r, step = k;
  int p = k - 1;
  for (int j = n - 1; j >= 0 && p >= 0; j--) {
    double tempo = step * h / ((double)vel[ind[j]]);
    if (tempo < mid - EPS || fabs(tempo - mid) < EPS) {
      step--;
      ret[p--] = ind[j] + 1;
    }
  }
  for (int i = (0); i < int(k); i++) {
    if (i) printf(" ");
    printf("%d", ret[i]);
  }
  printf("\n");
  return 0;
}
