#include <iostream>
#include <cmath>
#include <algorithm>
#include <math.h>
#include <vector>
#include <fstream>
using namespace std;
bool comp(int a, int b) {
return -(a-b);
}
void write(vector<long long> a) {
for (int i = 0; i < a.size(); i++) {
cout << a[i] << " ";
}
}
int main()
{
long long n, m;
long long L = 0;
long long sum = 0;
long long k = 0;
vector<long long> used;
vector<long long> br;
cin >> n >> m;
for (long long i = 0; i < m; i++) {
long long t;
cin >> t;
br.push_back(t);
br.push_back(t);
sum += t*2;
}
sort(br.begin(), br.end(), greater<int>());
if (n < sum) {
for (int j = 0; j < br.size(); j++) {
for (int i = j; i < br.size(); i++) {
if ( br[i] <= (n-L) ) {
used.push_back(br[i]);
L += br[i];
k++;
}
if (L == n) break;
}
if (L == n) {
break;
} else {
k = 0;
L = 0;
used.clear();
}
}
if (L == n) {
cout << k << endl;
write(used);
} else {
cout << 0;
}
} else if (n == sum) {
cout << m*2 << endl;
write(br);
} else {
cout << -1;
}
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.