#include <bits/stdc++.h>   using namespace std;   template <typename T>   void _dbg(const char* _s, T _h) {     cerr << _s <<   =   << _h <<   n ;   }   template <typename T, typename... Ts>   void _dbg(const char* _s, T _h, Ts... _t) {     int _b = 0;     while (((_b += *_s ==  ( ) -= *_s ==  ) ) != 0 || *_s !=  , ) cerr << *_s++;     cerr <<   =   << _h <<  , ;     _dbg(_s + 1, _t...);   }   const int64_t INF = static_cast<int64_t>(1e9) + 7;   const int64_t LINF = INF * INF;   const int MAXN = static_cast<int>(1e6) + 17;   void solve() {     int n;     int64_t second;     cin >> n >> second;     vector<int> v(n);     int64_t sum = 0;     int right = INF;     for (auto& el : (v)) {       cin >> el;       sum += el;       right = min(right, el);     }     if (sum < second) {       cout <<  -1 n ;       return;     }     ++right;     int left = 0;     while (right - left > 1) {       int mid = (left + right) / 2;       int64_t amount = 0;       for (int i = 0; i < n; ++i) {         amount += v[i] - mid;       }       if (amount >= second) {         left = mid;       } else {         right = mid;       }     }     cout << left;   }   int main() {     cin.tie(nullptr);     cout.tie(nullptr);     ios_base::sync_with_stdio(false);     int q = 1;     for (int i = 0; i < q; ++i) {       solve();     }   }   