#include <bits/stdc++.h>
#define f first
#define s second
#define pb push_back
#define mp make_pair
#include "books.h"
using namespace std;
void solve(int N, int K, long long A, int S) {
// TODO implement this function
int k=K;
int x=A/K;
int l=1,r=N;
while (l<r){
int mid=(l+r)/2;
int y=skim(mid);
if (y<x) l=mid+1; else r=mid;
}
vector <pair <int,int> > v;
v.clear();
for (int i=max(1,l-K+2); i<=min(N,l+K-1); i++){
int y=skim(i);
v.pb(mp(y,i));
}
if (v.size()<K){
impossible(); return ;
}
x=0;
int ind=0,ind1=k;
for (int i=0; i<k; i++){
x+=v[i].f;
}
while (x<A || x>2*A ){
if (ind1>=v.size()) break;
x-=v[ind].f;
ind++;
x+=v[ind1].f;
ind1++;
}
if (x<A || x>2*A){
impossible(); return;
}
vector <int> ans;
ans.clear();
for (int i=ind; i<ind1; i++) ans.pb(v[i].s);
answer(ans);
/* int l1=l;
int x=(2*A)/K;
int l=1,r=N;
while (l<r){
int mid=(l+r)/2;
int y=skim(mid);
if (y>x) r=mid-1; else l=mid;
}
if ()*/
}
/*
15 3 42 8
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21*/
/*
15 3 42 8
1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351
*/