#include<bits/stdc++.h>
using namespace std;
map<vector<int>,int>mp;
vector<int>result;
bool flag;
int sum,t,n;
int arr[15];
void backtracking(int start)
{
int i,j;
if(sum>t)
{
return;
}
if(sum==t && !mp[result])
{
flag = true;
printf("%d",result[0]);
for(j=1; j<result.size(); j++)
{
printf("+%d",result[j]);
}
puts("");
mp[result] = 1;
return;
}
for(i=start; i<=n; i++ )
{
sum += arr[i];
result.push_back(arr[i]);
backtracking(i+1);
sum -= arr[i];
result.pop_back();
}
}
int main()
{
int i;
while(scanf("%d%d",&t,&n)&&t&&n)
{
for(i=1; i<=n; i++)
{
scanf("%d",&arr[i]);
}
sum = 0;
flag = false;
printf("Sums of %d:\n",t);
backtracking(1);
if(!flag)
printf("NONE\n");
result.clear();
mp.clear();
}
return 0;
}