#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
__int128 n, m, a, b, c, k, temp, x, y;
const int MAXN = 100000 + 11;
__int128 p[500000];
__int128 getsum(int l, int r) {
  if (l > 0) return p[r] - p[l - 1];
  return p[r];
}
__int128 read() {
  __int128 x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
void solveforthiscase(const int &test) {
  n = read();
  vector<pair<__int128, __int128> > vp(n);
  for (int i = 0; i < n; i++) vp[i].first = read(), vp[i].second = i;
  sort(vp.begin(), vp.end());
  p[0] = vp[0].first;
  for (int i = 1; i < n; i++) p[i] = vp[i].first + p[i - 1];
  k = read();
  int l = 0, r = 0, cnt = 0;
  pair<__int128, __int128> mi = {10000000000000000, -1};
  mi.first *= 10000000000000;
  __int128 sum = 0;
  for (int i = 1; i < k; i++) sum += vp[i].first * i - getsum(0, i - 1);
  if (sum < mi.first) mi.first = sum, mi.second = 0;
  for (int i = k; i < n; i++) {
    sum += vp[i].first * (k - 1) - getsum(i - k + 1, i - 1);
    sum += vp[i - k].first * (k - 1) - getsum(i - k + 1, i - 1);
    if (sum < mi.first) mi.first = sum, mi.second = i - k + 1;
  }
  vector<int> ans;
  for (int i = mi.second; i < mi.second + k; i++)
    ans.push_back(vp[i].second + 1);
  for (const auto &x : ans) cout << x << ' ';
  return;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  clock_t start, end;
  start = clock();
  int test = 1;
  for (int i = 1; i <= test; i++) solveforthiscase(i);
  end = clock();
  long double t_t = (long double)(end - start) / (long double)(CLOCKS_PER_SEC);
  if (false) cerr << (long double)t_t * 1000 << " ms ";
}
