#ifdef NACHIA #define _GLIBCXX_DEBUG #else // disable assert #define NDEBUG #endif #include #include #include #include using namespace std; using ll = long long; const ll INF = 1ll << 60; #define REP(i,n) for(ll i=0; i using V = vector; template void chmax(A& l, const B& r){ if(l < r) l = r; } template void chmin(A& l, const B& r){ if(r < l) l = r; } void testcase(){ ll N, S; cin >> N >> S; V A(N); REP(i,N) cin >> A[i]; sort(A.rbegin(), A.rend()); ll ok = INF, ng = 0; while(ok - ng > 1){ ll wt = (ok + ng) / 2; ll s = 0; for(ll t=0; twt; t += wt){ s += A[t]; } if(s >= S) ng = wt; else ok = wt; } cout << ok << "\n"; } int main(){ cin.tie(0)->sync_with_stdio(0); testcase(); return 0; }