#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
int main() {
  int n, k, h;
  cin >> n >> k >> h;
  vector<int> w(n), v(n);
  for (int i = 0; i < n; ++i) scanf("%d", &w[i]);
  for (int i = 0; i < n; ++i) scanf("%d", &v[i]);
  vector<pair<pair<int, int>, int> > a;
  for (int i = 0; i < n; ++i) a.push_back(make_pair(make_pair(w[i], v[i]), i));
  sort((a).begin(), (a).end());
  double l = 0, r = 1. * k * h / (*min_element((v).begin(), (v).end()));
  vector<int> rres;
  double vres = r;
  for (int iter = 0; iter < 100; ++iter) {
    double T = (l + r) / 2;
    vector<int> res;
    for (typeof a.begin() it = a.begin(); it != a.end(); ++it) {
      int x = it->second;
      if (v[x] * T >= (res.size() + 1) * h) {
        res.push_back(x);
        if (res.size() >= k) break;
      }
    }
    if (res.size() >= k) {
      if (T <= vres) rres = res;
      r = T;
    } else
      l = T;
  }
  assert(rres.size() == k);
  for (int i = 0; i < k; ++i) cout << rres[i] + 1 << " ";
  return 0;
}
