package main
import (
"fmt"
"io"
"os"
)
func readInt(data []byte, ptr *int) int {
res := 0
for *ptr < len(data) && (data[*ptr] < '0' || data[*ptr] > '9') {
*ptr++
}
for *ptr < len(data) && data[*ptr] >= '0' && data[*ptr] <= '9' {
res = res*10 + int(data[*ptr]-'0')
*ptr++
}
return res
}
func main() {
data, _ := io.ReadAll(os.Stdin)
ptr := 0
if ptr >= len(data) {
return
}
n := readInt(data, &ptr)
k := readInt(data, &ptr)
a := make([]int, n)
for i := 0; i < n; i++ {
a[i] = readInt(data, &ptr)
}
low, high := 1, 1000000000
ans := high
for low <= high {
mid := low + (high-low)/2
c1, c2 := 0, 0
for i := 0; i < n; i++ {
if c1%2 == 0 {
if a[i] <= mid {
c1++
}
} else {
c1++
}
}
for i := 0; i < n; i++ {
if c2%2 == 1 {
if a[i] <= mid {
c2++
}
} else {
c2++
}
}
if c1 >= k || c2 >= k {
ans = mid
high = mid - 1
} else {
low = mid + 1
}
}
fmt.Println(ans)
}