/*
IN THE NAME OF GOD
*/
#include <bits/stdc++.h>
using namespace std;
#define mpr make_pair
#define pb push_back
#define fi first
#define se second
#define MOD 1000000007
#define sz(a) (int)a.size()
#define mems(a,v) memset(a,v,sizeof a)
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef vector<string> vs;
typedef pair<int,int> pii;
int main()
{
int n , m;
while(cin >> n >> m) {
bitset<20> mask;
vector<int> vec(m);
for(int i = 0; i < m; i++) cin >> vec[i];
int t = pow(2 , m) , mx = 0, msk;
for(int i = 0; i < t; i++) {
int s = 0; mask = i+1;
for(int y = 0; y < m; y++) {
if(mask[y]){
s += vec[y];
}
}
if(s <= n && s > mx) {
mx = s;
msk = i + 1;
}
}
mask = msk;
for(int i = 0; i < m; i++) {
if(mask[i]) {
cout << vec[i] << ' ';
}
}
cout << "sum:" << mx << endl;
}
return 0;
}
LyoKSU4gVEhFIE5BTUUgT0YgR09ECiovCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBtcHIgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIHN6KGEpIChpbnQpYS5zaXplKCkKI2RlZmluZSBtZW1zKGEsdikgbWVtc2V0KGEsdixzaXplb2YgYSkKI2RlZmluZSBhbGwodikgKHYpLmJlZ2luKCksICh2KS5lbmQoKQojZGVmaW5lIHJhbGwodikgKHYpLnJiZWdpbigpLCAodikucmVuZCgpCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgdmVjdG9yPHN0cmluZz4gdnM7CnR5cGVkZWYgcGFpcjxpbnQsaW50PiBwaWk7CgppbnQgbWFpbigpCnsKICAgIGludCBuICwgbTsKCiAgICB3aGlsZShjaW4gPj4gbiA+PiBtKSB7CiAgICAgICAgYml0c2V0PDIwPiBtYXNrOwogICAgICAgIHZlY3RvcjxpbnQ+IHZlYyhtKTsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbTsgaSsrKSBjaW4gPj4gdmVjW2ldOwogICAgICAgIGludCB0ID0gcG93KDIgLCBtKSAsIG14ID0gMCwgbXNrOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCB0OyBpKyspIHsKICAgICAgICAgICAgaW50IHMgPSAwOyBtYXNrID0gaSsxOwogICAgICAgICAgICBmb3IoaW50IHkgPSAwOyB5IDwgbTsgeSsrKSB7CiAgICAgICAgICAgICAgICBpZihtYXNrW3ldKXsKICAgICAgICAgICAgICAgICAgICBzICs9IHZlY1t5XTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZihzIDw9IG4gJiYgcyA+IG14KSB7CiAgICAgICAgICAgICAgICBteCA9IHM7CiAgICAgICAgICAgICAgICBtc2sgPSBpICsgMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBtYXNrID0gbXNrOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKICAgICAgICAgICAgaWYobWFza1tpXSkgewogICAgICAgICAgICAgICAgY291dCA8PCB2ZWNbaV0gPDwgJyAnOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgInN1bToiIDw8IG14IDw8IGVuZGw7CiAgICB9CgpyZXR1cm4gMDsKfQo=