For this Question: Newton has N baskets containing apples. There are A<sub>i</sub> apples in ith basket. Newton wants to gift one apple to each of his M friends.

To do that he will select some baskets and gift all apples in these baskets to his friends. <b>Note</b> that he will gift apples if and only if there are exactly M apples in these subset of baskets.

Help him determine if it is possible to gift apple or not.The first line contains two space-separated integers – N and M.

The second line contains N space-separated integers A<sub>1</sub>, A<sub>2</sub>, ... A<sub>N</sub>.

<b> Constraints: </b>
1 ≤ N ≤ 100
1 ≤ M ≤ 10<sup>11</sup>
1 ≤ A<sub>i</sub> ≤ 10<sup>9</sup>
1 <= ∏ A<sub>i</sub> <= 10<sup>100</sup>Output "Yes" (without quotes) if Newton can distribute apples among his friends else "No" (without quotes).INPUT:
4 8
1 3 3 4


OUTPUT:
Yes

EXPLANATION:
Newton can use 1st, 2nd, 4th basket to give one apple to all his friends., I have written this Solution Code: #include<bits/stdc++.h>
using namespace std;

typedef long long int ll;

const ll b = 10000;
ll pre[1000000];

int main(){
	ll n,x;
	cin >> n >> x;
	vector<ll> a(n);
	for(ll i=0 ; i<n ; i++){
		cin >> a[i];
	}
	fill(pre, pre + 1000000, -1);
	pre[0] = 0;
	vector<pair<ll,ll>> v;
	for(ll i=0 ; i<n ; i++){
		if (a[i]>=b) v.push_back({ a[i],i });
		else{
			for(ll j=1000000-1 ; j>=0 ; j--) {
				if (pre[j] < 0) continue;
				if (j + a[i] < 1000000 && pre[j+a[i]] < 0) {
					pre[j + a[i]] = j;
				}
			}
		}
	}
	ll len = v.size();
	for(ll i=0 ; i<(1 << len) ; i++){
		ll sum = 0;
		for(ll j=0 ;  j<len ; j++) {
			if (i & (1 << j)) sum += v[j].first;
		}
		ll d = x - sum;
		if (d >= 0 && d < 1000000) {
			if (pre[d] >= 0) {
				cout << "Yes\n";
				return 0;
			}
		}
	}
	cout << "No" << "\n";
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?