#include using namespace std; #define int long long #define rep(i,n) for(int i=0;i<(n);i++) #define pb push_back #define all(v) (v).begin(),(v).end() #define fi first #define se second typedef vectorvint; typedef pairpint; typedef vectorvpint; templateinline void chmin(A &a,B b){if(a>b)a=b;} templateinline void chmax(A &a,B b){if(as; rep(i,N){ if(i==0||i==x)continue; s.insert(A[i]); } int X=A[0]+A[x]; int cnt=0; while(s.size()){ int t=*s.rbegin(); auto it=s.end(); it--; s.erase(it); it=s.upper_bound(X-t); if(it==s.end())break; cnt++; s.erase(it); } return cnt>N>>M; rep(i,N)cin>>A[i]; sort(A+1,A+N); int lb=0,ub=N; while(ub-lb>1){ int mid=(ub+lb)/2; if(C(mid))ub=mid; else lb=mid; } if(ub==N)cout<<-1<