#include <bits/stdc++.h>
int main() {
  int n, k;
  std::cin >> n >> k;
  std::vector<int> a(n);
  for (auto& now : a) {
    std::cin >> now;
  }
  if (k == 1) {
    std::cout << *std::min_element(a.begin(), a.end()) << '\n';
  } else if (k >= 3) {
    std::cout << *std::max_element(a.begin(), a.end()) << '\n';
  } else {
    int max = *std::max_element(a.begin(), a.end());
    if (a[0] == max || a[a.size() - 1] == max) {
      std::cout << max << '\n';
    } else {
      std::cout << std::max(a[0], a[a.size() - 1]) << '\n';
    }
  }
  return 0;
}
