#include <bits/stdc++.h>
using namespace std;

#define INF 1001001001
#define LINF 1001001001001001001
#define MOD 1000000007
#define MOD2 998244353

template<class T,class U>bool chmax(T &a, const U &b){if(a<b){a=b;return 1;}return 0;}
template<class T,class U>bool chmin(T &a, const U &b){if(b<a){a=b;return 1;}return 0;}

#define rep(i,n) for(int i=0,_i=(n);i<_i;++i)
#define rep1(i,a,b) for(int a_=(a),b_=(b),i=a_;i<b_;++i)
#define repr(i,n) for(int _i=(n),i=_i;i>0;--i)

#define db(x) cerr<<#x<<" = "<<x<<" ";
#define db2(x,y) cerr<<"("<<#x<<", "<<#y<<") = ("<<x<<", "<<y<<") ";
#define db3(x,y,z) cerr<<"("<<#x<<", "<<#y<<", "<<#z<<") = ("<<x<<", "<<y<<", "<<z<<") ";
#define ln cout<<endl;

#define all(a)  (a).begin(),(a).end()
#define dig(n)  to_string(n).length()

#define pb push_back
#define eb emplace_back
#define mp make_pair
#define se second
#define fi first

typedef long long ll;
typedef pair<int,int> pii;
typedef pair<pii,pii> ppii;

ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
ll lcm(ll a,ll b){return (a*b)/gcd(a,b);}

int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};

int main(){
    bool flag=false;
    ll ans=0,sum=0;

    int n,k,m;
    cin >>n>>k>>m;

    rep1(i,0,n-1){
        int ai;
        cin>>ai;

        sum += ai;
    }

    //db3(k,sum,n*m - sum);ln;

    if(n*m - sum > k){
        puts("-1");
        return 0;
    }else{
        cout <<max(0LL,n*m - sum)<<endl;
        return 0;
    }

    //cout <<fixed<<setprecision(16)<< << endl;
    cout<<ans<<endl;
    //if(flag)cout << "Yes" <<endl;
    //else cout << "No" <<endl;
    
    return 0;
}

#include <iostream>

using namespace std;

int main()
{
    int n,k,m,zbir=0;
    cin>>n>>k>>m;
    int a[n];
    for(int i=0;i<n-1;i++) {
        cin>>a[i];
        zbir+=a[i];
    }
    int average=m*n;
    int rezultat=average-zbir;
    if(rezultat<0) {
        cout<<"0";
        rezultat=2000000;
    }
    if(rezultat<=k) cout<<rezultat;
    if(rezultat>k) if(rezultat!=2000000) cout<<"-1"<<endl;
    return 0;
}
