#include <bits/stdc++.h>
using namespace std;
namespace BST {
inline long long QuickPower(long long x, long long y, long long mod) {
  long long res = 1;
  while (y) {
    if (y & 1) res = res * x % mod;
    y >>= 1;
    x = (x * x) % mod;
  }
  return res;
}
template <typename T>
inline void read(T& t) {
  t = 0;
  char c = getchar();
  int f = 1;
  while (c < '0' || c > '9') {
    if (c == '-') f = -f;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    t = (t << 3) + (t << 1) + c - '0';
    c = getchar();
  }
  t *= f;
}
template <typename T, typename... Args>
inline void read(T& t, Args&... args) {
  read(t);
  read(args...);
}
template <typename T>
inline void put(T x) {
  if (x < 0) {
    x = -x;
    putchar('-');
  }
  if (x > 9) put(x / 10);
  putchar(x % 10 + '0');
}
template <typename T, typename... Args>
inline void put(T& t, Args&... args) {
  put(t);
  putchar(' ');
  put(args...);
}
};  // namespace BST
namespace BIT {
int a[((int)1e5)], c[((int)1e5)];
inline int ask(int x) {
  int ans = 0;
  while (x) {
    ans += c[x];
    x -= (x & (-x));
  }
  return ans;
}
inline void update(int x, int val) {
  while (x <= ((int)1e5)) {
    c[x] += val;
    x += (x & (-x));
  }
}
};  // namespace BIT
namespace SEGT {
unsigned long long a[((int)1e6)], ans[((int)1e6) << 2], tag[((int)1e6) << 2];
inline void push_up(long long p) { ans[p] = ans[p << 1] + ans[p << 1 | 1]; }
void build(long long p, long long l, long long r) {
  tag[p] = 0;
  if (l == r) {
    ans[p] = a[l];
    return;
  }
  long long mid = (l + r) >> 1;
  build(p << 1, l, mid);
  build(p << 1 | 1, mid + 1, r);
  push_up(p);
}
inline void f(long long p, long long l, long long r, long long k) {
  tag[p] = tag[p] + k;
  ans[p] = ans[p] + k * (r - l + 1);
}
inline void push_down(long long p, long long l, long long r) {
  long long mid = (l + r) >> 1;
  f(p << 1, l, mid, tag[p]);
  f(p << 1 | 1, mid + 1, r, tag[p]);
  tag[p] = 0;
}
inline void update(long long nl, long long nr, long long l, long long r,
                   long long p, long long k) {
  if (nl <= l && r <= nr) {
    ans[p] += k * (r - l + 1);
    tag[p] += k;
    return;
  }
  push_down(p, l, r);
  long long mid = (l + r) >> 1;
  if (nl <= mid) update(nl, nr, l, mid, p << 1, k);
  if (nr > mid) update(nl, nr, mid + 1, r, p << 1 | 1, k);
  push_up(p);
}
long long query(long long q_x, long long q_y, long long l, long long r,
                long long p) {
  long long res = 0;
  if (q_x <= l && r <= q_y) return ans[p];
  long long mid = (l + r) >> 1;
  push_down(p, l, r);
  if (q_x <= mid) res += query(q_x, q_y, l, mid, p << 1);
  if (q_y > mid) res += query(q_x, q_y, mid + 1, r, p << 1 | 1);
  return res;
}
};  // namespace SEGT
using namespace BST;
int main(void) {
  int a[1005];
  int k, n;
  read(n, k);
  for (int i = 0; i < n; i++) {
    read(a[i]);
  }
  sort(a, a + n);
  if (n == 1)
    cout << a[0];
  else if (n == 2)
    cout << a[0] + a[1];
  else
    cout << a[0] + a[1] + a[2];
  return 0;
}
