#include <bits/stdc++.h>   using namespace std;   long long mod = 1e9 + 7;   int inf = 1e9;   double eps = 1e-6;   int main() {     int n, k;     cin >> n >> k;     vector<int> a;     for (int i = 0; i < n; i++) {       int t;       cin >> t;       a.push_back(t);     }     if (k == 1) {       int ans = a[0];       for (int i = 1; i < n; i++) {         ans = min(ans, a[i]);       }       cout << ans;     } else if (k > 2) {       int ans = a[0];       for (int i = 1; i < n; i++) {         ans = max(ans, a[i]);       }       cout << ans;     } else {       int ans = INT_MIN;       multiset<int> p;       multiset<int> q;       p.insert(a[0]);       for (int i = 1; i < n; i++) {         q.insert(a[i]);       }       ans = max(ans, max(*q.begin(), *p.begin()));       for (int i = 1; i < n - 1; i++) {         p.insert(a[i]);         q.erase(q.find(a[i]));         ans = max(ans, max(*q.begin(), *p.begin()));       }       cout << ans;     }     return 0;   }   