#include <bits/stdc++.h>
using namespace std;
template <typename T, typename U>
void upmin(T& a, const U& b) {
  a = min<T>(a, b);
}
template <typename T, typename U>
void upmax(T& a, const U& b) {
  a = max<T>(a, b);
}
template <typename T>
void uniq(T& a) {
  sort(a.begin(), a.end());
  a.erase(unique(a.begin(), a.end()), a.end());
}
void fast_io() {
  cin.tie(0);
  ios::sync_with_stdio(false);
}
bool in_rect(int x, int y, int w, int h) {
  return 0 <= x && x < w && 0 <= y && y < h;
}
const int dx[] = {0, 1, 0, -1};
const int dy[] = {1, 0, -1, 0};
int main() {
  fast_io();
  int n;
  cin >> n;
  vector<pair<long long, int>> s;
  for (int i = 0; i < (int)(n); i++) {
    int x;
    cin >> x;
    s.push_back(pair<long long, int>(x, i + 1));
  }
  sort((s).begin(), (s).end());
  int k;
  cin >> k;
  long long sum = 0;
  long long pos_sum = 0;
  for (int i = 0; i < (int)(k); i++) {
    sum += i * s[i].first - pos_sum;
    pos_sum += s[i].first;
  }
  long long min_sum = LLONG_MAX;
  int start = -1;
  for (int i = 0; i < (int)(n - k + 1); i++) {
    if (sum < min_sum) {
      min_sum = sum;
      start = i;
    }
    if (i + k < n) {
      pos_sum -= s[i].first;
      sum -= pos_sum - (k - 1) * s[i].first;
      sum += (k - 1) * s[i + k].first - pos_sum;
      pos_sum += s[i + k].first;
    }
  }
  assert(start != -1);
  for (int i = 0; i < (int)(k); i++) cout << s[start + i].second << " ";
  cout << endl;
}
