#include <bits/stdc++.h>
using namespace std;
typedef struct NODE {
  long long int pos;
  long long int idx;
  bool operator<(const NODE &in) const { return pos < in.pos; }
} NODE;
NODE node[300033];
long long int num[300033];
long long int sum[300033];
long long int fik;
long long int n, k;
long long int s(int l, int r) {
  if (l <= r)
    return sum[r] - sum[l - 1];
  else
    return 0;
}
int main() {
  long long int i, j, idx, minf;
  while (scanf("%I64d", &n) != EOF) {
    sum[0] = 0;
    for (i = 1; i <= n; i++) scanf("%I64d", &node[i].pos), node[i].idx = i;
    sort(node + 1, node + n + 1);
    for (i = 1; i <= n; i++) num[i] = node[i].pos;
    for (i = 1; i <= n; i++) sum[i] = sum[i - 1] + num[i];
    fik = 0;
    scanf("%I64d", &k);
    for (i = 1; i <= k; i++) {
      fik = fik + num[i] * (i - 1) - s(1, i - 1);
    }
    idx = 1;
    minf = fik;
    for (i = 2; i <= n - k + 1; i++) {
      fik = fik - (s(i, i + k - 2) - (k - 1) * num[i - 1]) +
            ((k - 1) * num[i + k - 1] - s(i, i + k - 2));
      if (fik < minf) minf = fik, idx = i;
    }
    for (i = idx, j = 0; j < k; i++, j++) {
      if (j != 0) putchar(' ');
      printf("%d", node[i].idx);
    }
  }
  return 0;
}
