#include using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, K, M; cin >> N >> K; cin >> M; vector A(N + 1); ll S = 0; for (int i = 1; i <= N; i++) { cin >> A[i]; S += A[i]; } if (S % (N + 1) != 0) { cout << -1 << '\n'; return 0; } ll T = S / (N + 1); if (T < 1) { cout << -1 << '\n'; return 0; } vector W(N + 1); for (int i = 1; i <= N; i++) { W[i] = A[i] - T; if (W[i] < 0) { cout << -1 << '\n'; return 0; } } if (W[M] < 1 || A[M] - 2 < K) { cout << -1 << '\n'; return 0; } int m = (int)T - 1; vector> v; for (int i = 1; i <= N; i++) { int b = W[i] - (i == M ? 1 : 0); if (b < 0) { cout << -1 << '\n'; return 0; } if (b > 0) v.push_back({b, i}); } sort(v.begin(), v.end(), [&](auto a, auto b) { if (a.first != b.first) return a.first > b.first; return a.second < b.second; }); int pref = 0; vector mid; for (auto [b, id] : v) { pref += b; if (pref > K + 1 - b) { cout << -1 << '\n'; return 0; } for (int k = 0; k < b; k++) mid.push_back(id); } sort(mid.begin(), mid.end()); vector ans = mid; ans.push_back(M); cout << ans.size() << '\n'; for (int i = 0; i < (int)ans.size(); i++) { if (i) cout << ' '; cout << ans[i]; } cout << '\n'; return 0; }