#include using namespace std; int n, m, a0; vector a; bool check(int x){ int k = a0 + x; int cnt = 0; int left = 0, right = a.size() - 1; while(right - left > 0){ int point = a[right] + a[left]; if(point > k){ cnt++; right--; left++; }else{ left++; } } return cnt < m; } int main(){ cin >> n >> m >> a0; for(int i=0;i> tmp; a.push_back(tmp); } sort(a.begin(), a.end()); int ng = -1, ok = a.size() - 1; while(ok - ng > 1){ int mid = (ok + ng) / 2; if(check(mid))ok = mid; else ng = mid; } if(!check(ok))cout << -1; else cout << ok; cout << endl; return 0; }