#include <bits/stdc++.h>
#pragma optimization_level 3
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx")
using namespace std;
const long double PI = 3.14159265358979323846;
const long long MOD = 1e+9 + 7;
const long long INF = LLONG_MAX;
const int INFi = INT_MAX;
const long long N = 1e+6 + 8;
vector<long long> adj[N];
long long vis[N];
long long dx4[] = {0, 1, 0, -1}, dy4[] = {1, 0, -1, 0};
long long test_cases = 1;
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
;
long long n, k, a[N], dp[N];
long long P(long long key, long long ok) {
  long long cnt = 0;
  for (long long i = (1); i <= n; i++) {
    if (ok) {
      cnt++;
      ok = !ok;
    } else {
      if (a[i] <= key) {
        cnt++;
        ok = !ok;
      }
    }
  }
  return cnt >= k;
}
long long bs(long long L, long long R) {
  while (L < R) {
    long long mid = (L + R) / 2;
    if (P(mid, 0) || P(mid, 1))
      R = mid;
    else
      L = mid + 1;
  }
  return L;
}
void MAIN(long long tc) {
  cin >> n >> k;
  for (long long i = (1); i <= n; i++) cin >> a[i];
  cout << bs(1, MOD);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cout << fixed;
  cout << setprecision(10);
  ;
  for (long long i = (1); i <= test_cases; i++) {
    MAIN(i);
  }
}
