#include <bits/stdc++.h>
using namespace std;
int n, k;
long long h;
int m[100005], v[100005];
vector<pair<pair<long long, long long>, int> > a;
int ans[100005];
bool check(long double t) {
  int cnt = 0;
  for (int i = 0; i < n; i++)
    if ((long double)(cnt + 1) * h / a[i].first.second < t) cnt++;
  return cnt >= k;
}
int main() {
  cin >> n >> k >> h;
  for (int i = 0; i < n; i++) cin >> m[i];
  for (int i = 0; i < n; i++) cin >> v[i];
  for (int i = 0; i < n; i++)
    a.push_back(make_pair(make_pair(m[i], v[i]), i + 1));
  sort(a.begin(), a.end());
  long double L = 0, R = 1e10;
  for (int i = 0; i < 100; i++) {
    long double M = (L + R) / 2.0;
    if (check(M))
      R = M;
    else
      L = M;
  }
  int j = 0;
  for (int i = 0; i < n; i++)
    if ((long double)(j + 1) * h / a[i].first.second < R)
      ans[j] = a[i].second, j++;
  for (int i = 0; i < k; i++) cout << ans[i] << " ";
  cout << endl;
  return 0;
}
