#include <bits/stdc++.h>
#include "books.h"
using namespace std;
using ll = long long;
const int MAXN = 1e5 + 10;
ll x[MAXN];
ll get(int i){
if(!x[i]) x[i] = skim(i);
return x[i];
}
ll get_sum(int m, int k){
ll sum = 0;
for(int i=m; i<=(m + k - 1); i++){
if(!x[i]) x[i] = skim(i);
sum += x[i];
}
return sum;
}
void solve(int n, int k, ll a, int s){
for(int i=1; i<=n; i++) x[i] = 0;
int l = 1, r = n;
while(l < r){
int m = l + (r - l) / 2;
if(get(m) > a) r = m;
else l = m + 1;
}
vector<int> ans;
if(k - 1 < r && a <= get_sum(1, k - 1) + get(r) && get_sum(1, k - 1) + get(r) <= 2 * a){
for(int i=1; i<=(k - 1); i++) ans.push_back(i);
ans.push_back(r);
answer(ans);
return;
}
if(r - k >= 1 && a <= get_sum(r - k, k) && get_sum(r - k, k) <= 2 * a){
for(int i=(r - k); i<=(r - 1); i++) ans.push_back(i);
answer(ans);
return;
}
if(r - k >= 0 && a <= get_sum(r - k + 1, k) && get_sum(r - k + 1, k) <= 2 * a){
for(int i=(r - k + 1); i<=r; i++) ans.push_back(i);
answer(ans);
return;
}
impossible();
}