#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main(){
    int N, K, M;
    cin >> N >> K >> M;
    int sumA = 0;
    for(int i = 0; i < N-1; ++i){
        int tmp ;
        cin >> tmp;
        sumA += tmp;
    }
    for(int i = 0; i <= K; ++i){
        if((sumA + i) / N >= M){
            cout << i << endl;
            return 0;
        }
    }
    cout << "-1" << endl;
    return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define SELECTER(_1, _2, _3, SELECT, ...) SELECT
#define REP1(i, n) for(int (i)=0; (i)<(n); (i)++)
#define REP2(i, a, b) for(int (i)=(a); (i)<(b); (i)++)
#define REP(...) SELECTER(__VA_ARGS__, REP2, REP1,) (__VA_ARGS__)
#define MOD 1000000007

template <class T> ostream& operator<<(ostream& os, const vector<T>& v){ os << "{"; for(size_t i=0; i<v.size(); i++) os << v[i] << (i+1==v.size() ? "" : ", "); os << "}"; return os; }
template <class T, class U> ostream& operator<<(ostream& os, const pair<T, U>& p){ return os << "{" << p.first << ", " << p.second << "}"; }


int main(){
    int N, K, M;
    cin >> N >> K >> M;
    vector<int> A(N-1);
    REP(i, N-1) cin >> A[i];
    int sm = 0;
    REP(i, N-1) sm += A[i];
    int rem = max(0, M*N - sm);
    if(rem > K) cout << -1 << endl;
    else cout << rem << endl;
    return 0;
}