#include<iostream>
#include<algorithm>
using namespace std;
const int N=20;
int t,n;
int a[N],ans[N],sum;
bool flag;
bool cmp(int a,int b){
return a>b;
}
void dfs(int x,int sum,int st,int ed){
if(sum>t) return ;
if(sum==t){
cout<<ans[0];
for(int i=1;i<ed;i++)
cout<<'+'<<ans[i];
cout<<endl;
flag=true;
}
for(int i=st;i<n;i++){
ans[ed]=a[i];
dfs(a[i],sum+a[i],i+1,ed+1);
while(i+1<n&&a[i]==a[i+1]) i++;
}
}
int main(){
while(cin>>t>>n){
if(sum==0&&n==0) break;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n,cmp);
cout<<"Sums of "<<t<<':'<<endl;
sum=0,flag=false;
dfs(0,0,0,0);
if(!flag) cout<<"NONE"<<endl;
}
return 0;
}
11-04
940
07-15
536