#include <bits/stdc++.h>
using namespace std;
void _fill_int(int* p, int val, int rep) {
  int i;
  for (i = 0; i < rep; i++) p[i] = val;
}
signed long long GETi() {
  signed long long i;
  scanf("%lld", &i);
  return i;
}
int N, K;
signed long long X[400001], A[400001], S[400001];
pair<signed long long, int> ST[400001];
double ave[400001];
void solve() {
  int f, i, j, k, l, x, y;
  cin >> N;
  for (i = 0; i < N; i++) {
    cin >> X[i];
    X[i] += 100000000;
    ST[i] = make_pair(X[i], i + 1);
  }
  sort(ST, ST + N);
  for (i = 0; i < N; i++) {
    A[i] = ST[i].first;
    S[i + 1] = S[i] + A[i];
  }
  cin >> K;
  double tot = 0;
  for (i = 0; i < K; i++) {
    tot += (S[K] - S[i + 1]) - (A[i] * (K - (i + 1)));
    tot += (A[i] * (i)) - S[i];
  }
  ave[0] = tot;
  for (i = K; i < N; i++) {
    tot -= 2 * ((S[i] - S[i - K + 1]) - (A[i - K] * (K - 1)));
    tot += 2 * ((A[i] * (K - 1)) - (S[i] - S[i - K + 1]));
    ave[i - (K - 1)] = tot;
  }
  double mi = 1e200;
  x = -1;
  for (i = 0; i < N - K + 1; i++)
    if (ave[i] < mi) x = i, mi = ave[i];
  for (i = 0; i < K; i++) (void)printf("%d ", ST[x + i].second);
  (void)printf("\n");
}
int main(int argc, char** argv) {
  string s;
  for (int i = 1; i < argc; i++) s += argv[i], s += '\n';
  for (int i = s.size() - 1; i >= 0; i--) ungetc(s[i], stdin);
  solve();
  return 0;
}
