func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long MOD = 1000000007;   template <class T>   void _R(T &x) {     cin >> x;   }   void _R(int &x) { cin >> x; }   void _R(int64_t &x) { cin >> x; }   void _R(double &x) { cin >> x; }   void _R(long double &x) { cin >> x; }   void _R(char &x) { cin >> x; }   void _R(char *x) { cin >> x; }   void _R(string &x) { cin >> x; }   void R() {}   template <class T, class... U>   void R(T &head, U &...tail) {     _R(head);     R(tail...);   }   template <class T>   void _W(const T &x) {     cout << x;   }   void _W(const int &x) { cout << x; }   void _W(const int64_t &x) { cout << x; }   void _W(const double &x) { cout << fixed << setprecision(8) << x; }   void _W(const long double &x) { cout << fixed << setprecision(16) << x; }   void _W(const char &x) { cout << x; }   void _W(const char *x) { cout << x; }   void _W(const string &x) { cout << x; }   template <class T, class U>   void _W(const pair<T, U> &x) {     _W(x.first);     cout <<    ;     _W(x.second);   }   template <class T>   void _W(const vector<T> &x) {     for (auto i = x.begin(); i != x.end(); _W(*i++))       if (i != x.cbegin()) cout <<    ;   }   void W() {}   template <class T, class... U>   void W(const T &head, const U &...tail) {     _W(head);     cout << (sizeof...(tail) ?     :   n );     W(tail...);   }   int n, k;   vector<int> a;   bool ok_even(int x) {     int cnt = 0;     for (int i = (0); i < (n); i++) {       if ((cnt & 1)) {         if (a[i] <= x) cnt++;       } else {         cnt++;       }       if (cnt >= k) return true;     }     return false;   }   bool ok_odd(int x) {     int cnt = 0;     for (int i = (0); i < (n); i++) {       if ((!(cnt & 1))) {         if (a[i] <= x) cnt++;       } else {         cnt++;       }       if (cnt >= k) return true;     }     return false;   }   bool ok(int x) {     if (ok_even(x)) {       return true;     } else if (ok_odd(x)) {       return true;     }     return false;   }   void solve() {     R(n, k);     a.resize(n);     for (int i = (0); i < (n); i++) {       R(a[i]);     }     int l = 0, r = 1e9 + 10;     while (r - l > 1) {       int mid = (r + l) / 2;       if (ok(mid)) {         r = mid;       } else {         l = mid;       }     }     W(r);   }   signed main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int t = 1;     for (int testcase = 1; testcase <= t; testcase++) {       solve();     }     return 0;   }   