#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 rem(N + 1); vector used_win(N + 1, 0); for (int i = 1; i <= N; i++) { rem[i] = W[i] - (i == M ? 1 : 0); if (rem[i] < 0) { 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) continue; int score_before = (p - 1) + used_win[i]; if (score_before < K) { c = i; break; } } if (c == -1) { cout << -1 << '\n'; return 0; } ans.push_back(c); rem[c]--; used_win[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; }