As you know, lemmings like jumping. For the next spectacular group jump n lemmings gathered near a high rock with k comfortable ledges on it. The first ledge is situated at the height of h meters, the second one is at the height of 2h meters, and so on (the i-th ledge is at the height of i·h meters). The lemmings are going to jump at sunset, and there's not much time left.

Each lemming is characterized by its climbing speed of vi meters per minute and its weight mi. This means that the i-th lemming can climb to the j-th ledge in <image> minutes.

To make the jump beautiful, heavier lemmings should jump from higher ledges: if a lemming of weight mi jumps from ledge i, and a lemming of weight mj jumps from ledge j (for i < j), then the inequation mi ≤ mj should be fulfilled.

Since there are n lemmings and only k ledges (k ≤ n), the k lemmings that will take part in the jump need to be chosen. The chosen lemmings should be distributed on the ledges from 1 to k, one lemming per ledge. The lemmings are to be arranged in the order of non-decreasing weight with the increasing height of the ledge. In addition, each lemming should have enough time to get to his ledge, that is, the time of his climb should not exceed t minutes. The lemmings climb to their ledges all at the same time and they do not interfere with each other.

Find the way to arrange the lemmings' jump so that time t is minimized.

Input

The first line contains space-separated integers n, k and h (1 ≤ k ≤ n ≤ 105, 1 ≤ h ≤ 104) — the total number of lemmings, the number of ledges and the distance between adjacent ledges.

The second line contains n space-separated integers m1, m2, ..., mn (1 ≤ mi ≤ 109), where mi is the weight of i-th lemming.

The third line contains n space-separated integers v1, v2, ..., vn (1 ≤ vi ≤ 109), where vi is the speed of i-th lemming.

Output

Print k different numbers from 1 to n — the numbers of the lemmings who go to ledges at heights h, 2h, ..., kh, correspondingly, if the jump is organized in an optimal way. If there are multiple ways to select the lemmings, pick any of them.

Examples

Input

5 3 2
1 2 3 2 1
1 2 1 2 10


Output

5 2 4


Input

5 3 10
3 4 3 2 1
5 4 3 2 1


Output

4 3 1

Note

Let's consider the first sample case. The fifth lemming (speed 10) gets to the ledge at height 2 in <image> minutes; the second lemming (speed 2) gets to the ledge at height 4 in 2 minutes; the fourth lemming (speed 2) gets to the ledge at height 6 in 3 minutes. All lemmings manage to occupy their positions in 3 minutes. 
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
struct Node {
  int m, v, id;
  bool operator<(const Node& P) const {
    if (m != P.m) return m < P.m;
    return v < P.v;
  }
} A[maxn];
int n, k, h, tmp[maxn], ans[maxn];
inline bool check(double M) {
  int cnt = k;
  for (int i = n; i; i--) {
    if (cnt <= A[i].v * M) {
      tmp[cnt--] = A[i].id;
      if (!cnt) {
        memcpy(ans, tmp, sizeof(int) * (k + 1));
        return 1;
      }
    }
  }
  return 0;
}
int main() {
  while (~scanf("%d%d%d", &n, &k, &h)) {
    for (int i = 1; i <= n; i++) A[i].id = i;
    for (int i = 1; i <= n; i++) scanf("%d", &A[i].m);
    for (int i = 1; i <= n; i++) scanf("%d", &A[i].v);
    sort(A + 1, A + 1 + n);
    double l = 1e-9, r = 1e5;
    for (int i = 0; i < 100; i++) {
      double mid = (l + r) / 2;
      if (check(mid))
        r = mid;
      else
        l = mid;
    }
    for (int i = 1; i <= k; i++) printf("%d%c", ans[i], i < k ? ' ' : '\n');
  }
  return 0;
}
