#include <bits/stdc++.h>
#include "books.h"
using namespace std;
typedef long long ll;
const int MAXN = 1e5+5;
ll val[MAXN];
void solve(int n, int k, ll a, int s) {
for(int i = 1; i <= n; i++)val[i] = 0;
int e = 1, d = n;
while(e != d){
int mid = (e+d)/2;
if(val[mid] == 0)val[mid] = skim(mid);
if(val[mid] <= a)e = mid+1;
else d = mid;
}
ll mn = 0;
for(int i = 1; i <= k; i++){
if(val[i] == 0)val[i] = skim(i);
mn += val[i];
}
if(mn > 2*a){ impossible(); return; }
if(a < val[e] && val[e] <= 2*a && val[e]+mn-val[k] <= 2*a && k <= e){
vector<int> ans;
for(int i = 1; i < k; i++)ans.push_back(i);
ans.push_back(e);
answer(ans);
return;
}
int lim = (val[e] > a)? e-1 : e;
if(lim < k){ impossible(); return; }
int cur = k, lst = lim;
while(cur > 0 && mn < a){
if(val[lst] == 0)val[lst] = skim(lst);
mn += val[lst]-val[cur];
cur--; lst--;
}
if(mn < a){ impossible(); return; }
vector<int> ans;
for(int i = 1; i <= cur; i++)ans.push_back(i);
for(int i = lst+1; i <= lim; i++)ans.push_back(i);
answer(ans);
}