#include #define M_PI 3.14159265358979323846 // pi using namespace std; typedef long long ll; typedef unsigned long long ull; typedef vector VI; typedef pair P; typedef tuple t3; typedef tuple t4; #define rep(a,n) for(ll a = 0;a < n;a++) #define repi(a,b,n) for(ll a = b;a < n;a++) #include using namespace std; const ll mod = 1e9 + 7; const ll INF = 1e15; template class SegmentTree { private: typedef function F; int n; T d0; vector vertex; F f; F g; public: SegmentTree(int sourceN, F f, F g, T d = 0) :d0(d), f(f), g(g) { init(sourceN); } void init(int sourceN) { n = 1; while (n < sourceN) n *= 2; vertex.assign(2 * n - 1, d0); } void update(int i, T x) { int k = i + n - 1; vertex[k] = g(vertex[k], x); while (k > 0) { k = (k - 1) / 2; vertex[k] = f(vertex[2 * k + 1], vertex[2 * k + 2]); } return; } T query(int l, int r) { T vl = d0, vr = d0; l += n - 1; r += n - 1; for (; l <= r; l /= 2, r = r / 2 - 1) { if (l % 2 == 0) vl = f(vl, vertex[l]); if (r & 1) vr = f(vr, vertex[r]); } return f(vl, vr); } }; int main() { ll n, k; cin >> n >> k; vector as(n); rep(i, n)cin >> as[i]; sort(as.begin(), as.end(), std::greater()); ll sum = 0; for (int i = 0; i < k; i++) { if (as[i] > 0) { sum += as[i]; } } cout << sum << endl; return 0; }