#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100000;
int n, k, h;
int m[MAXN];
int v[MAXN];
vector<int> ind;
bool my_comp(const int& i, const int& j) {
  if (m[i] < m[j]) return true;
  if (m[i] > m[j]) return false;
  if (v[i] < v[j]) return true;
  return false;
}
bool check(double t) {
  int next = 1;
  for (int i = 0; i < n; ++i) {
    if ((double)next * h <= t * (double)v[ind[i]]) {
      ++next;
      if (next > k) break;
    }
  }
  return next > k;
}
void print(double t) {
  int next = 1;
  for (int i = 0; i < n; ++i) {
    if ((double)next * h <= t * (double)v[ind[i]]) {
      cout << ind[i] + 1;
      ++next;
      if (next <= k) cout << " ";
      if (next > k) break;
    }
  }
  cout << endl;
}
int main() {
  cin >> n >> k >> h;
  for (int i = 0; i < n; ++i) {
    cin >> m[i];
  }
  ind.resize(n);
  for (int i = 0; i < n; ++i) {
    cin >> v[i];
    ind[i] = i;
  }
  sort(ind.begin(), ind.end(), my_comp);
  double L = 0.0;
  double R = 1e9;
  for (int iters = 0; iters < 100; ++iters) {
    double Q = (L + R) * 0.5;
    if (check(Q)) {
      R = Q;
    } else {
      L = Q;
    }
  }
  print(R);
  return 0;
}
