#include <bits/stdc++.h>
#include "books.h"
#define int long long
using namespace std;
//
// --- Sample implementation for the task books ---
//
// To compile this program with the sample grader, place:
// books.h books.cpp grader.cpp
// in a single folder and run:
// g++ books.cpp grader.cpp
// in this folder.
//
map<int, int> vals;
int get (int i) {
return vals[i] = (vals.count(i) ? vals[i] : skim(i + 1));
}
void solve(signed n, signed k, long long A, signed s) {
int sum = 0;
for (int i = 0; i < k; i++) {
sum += get(i);
}
int max_sum = 0;
for (int i = n - 1; i >= n - k; i--) {
max_sum += get(i);
}
if (sum > 2 * A || max_sum < A) {
impossible();
return;
}
int l = k - 1;
int r = n - 1;
while (true) {
sum -= get(l);
sum += get(r);
if (sum >= A) break;
l--;
r--;
}
int a = l, b = r;
sum -= get(r);
while (a < b) {
int m = (a + b) / 2;
int cur = sum + get(m);
if (cur >= A) b = m;
else a = m + 1;
}
sum += get(a);
assert((A <= sum && sum <= 2 * A));
vector<signed> ans;
for (int i = 0; i < l; i++) {
ans.push_back(i + 1);
}
for (int i = r + 1; i < n; i++) {
ans.push_back(i + 1);
}
ans.push_back(a + 1);
answer(ans);
}