← Home
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)
}