Problem:
Score : 200 points

Problem Statement

Snuke has N sticks.
The length of the i-th stick is l_i.

Snuke is making a snake toy by joining K of the sticks together.

The length of the toy is represented by the sum of the individual sticks that compose it.
Find the maximum possible length of the toy.

Constraints

1 \leq K \leq N \leq 50

1 \leq l_i \leq 50

l_i is an integer.

Input

Input is given from Standard Input in the following format:

N K
l_1 l_2 l_3 ... l_{N}

Output

Print the answer.

Sample Input 1

5 3
1 2 3 4 5

Sample Output 1

12

You can make a toy of length 12 by joining the sticks of lengths 3, 4 and 5, which is the maximum possible length.

Sample Input 2

15 14
50 26 27 21 41 7 42 35 7 5 5 36 39 1 45

Sample Output 2

386

Solution in C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <vector>
#include <map>
#include <set>
#include <string>
#include <stack> // s.top()
#include <bitset>
#include <queue> // s.front()
using namespace std;

typedef long long Int;
typedef pair<Int,Int> P;
#define print(x) cout<<(x)<<endl

#define INF10 10000000000
#define INF5 100000
#define EPS 1e-10
#define MOD 1000000007

Int diver = 998244353;


Int calc(Int ipt) {
	if (ipt > 0)return ipt %= diver;
	else if (ipt == 0)return 0;
	else return ipt + diver;
}

Int dp[90050];



int main() {
	int N, K; cin >> N >> K;
	vector<int> l;
	for (int i = 0; i < N; i++) {
		int ipt;
		cin >> ipt;
		l.push_back(ipt);
	}

	sort(l.begin(), l.end());

	int ans = 0;


	for (int i = 0; i < K; i++) {
		ans += l.back();
		l.pop_back();

	}
	print(ans);







	



	return 0;
}