#include using namespace std; using ll = long long; const int INF = 1e9; 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 rem(N + 1), deadline(N + 1, INF); for (int i = 1; i <= N; i++) { rem[i] = W[i] - (i == M ? 1 : 0); if (rem[i] < 0) { cout << -1 << '\n'; return 0; } if (rem[i] > 0) { deadline[i] = min(K + 1 - rem[i], m); if (deadline[i] < 1) { cout << -1 << '\n'; return 0; } } } vector ans; for (int p = 1; p <= m; p++) { int c = -1; for (int i = 1; i <= N; i++) { if (rem[i] > 0 && deadline[i] <= p) { c = i; break; } } if (c == -1) { for (int i = 1; i <= N; i++) { if (rem[i] > 0) { c = i; break; } } } if (c == -1) { cout << -1 << '\n'; return 0; } int before = (p - 1) + (W[c] - rem[c]); if (before >= K) { cout << -1 << '\n'; return 0; } ans.push_back(c); rem[c]--; } 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; }