#include <bits/stdc++.h>
using namespace std;
template <class T>
using arr = vector<vector<T>>;
template <class T>
void pr(T x) {
  cout << x << endl;
}
template <class T>
void prvec(vector<T> &a) {
  for (int i = 0; i < (a.size() - 1); i++) {
    cout << a[i] << " ";
  }
  cout << a[a.size() - 1] << endl;
}
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
int main() {
  int n, k;
  cin >> n >> k;
  vector<int> a(n);
  int min1 = (1e9), min2 = (1e9), min3 = (1e9);
  for (int i = 0; i < (n); i++) {
    int a;
    cin >> a;
    if (min1 >= a) {
      min3 = min2;
      min2 = min1;
      min1 = a;
    } else if (min2 >= a) {
      min3 = min2;
      min2 = a;
    } else if (min3 > a) {
      min3 = a;
    }
  }
  if (n >= 3) pr(min1 + min2 + min3);
  if (n == 2) pr(min1 + min2);
  if (n == 1) pr(min1);
  return 0;
}
