#include <iostream>
#include <vector>
using namespace std;
//抄博友程序 dfs 巧妙 背
int da[1008];
int flag;
vector<int> ve;
int tal;
int n;
void dfs(int pos,int sum)
{
if(sum==tal)
{
cout<<ve[0];
for(int i=1;i<ve.size();i++)
{
cout<<"+"<<ve[i];
}
cout<<endl;
flag=1;
return ;
}
for(int i=pos;i<n;i++)
{
if(sum>tal)
{
continue;
}
if(i>pos && da[i]==da[i-1])//巧妙
{
continue;
}
ve.push_back(da[i]);
dfs(i+1,sum+da[i]);//抄博友程序
ve.pop_back();//抄博友程序
}
return;
}
int main()
{
while(1)
{
flag=0;
ve.clear();
cin>>tal;
cin>>n;
if(tal==0 && n==0)
{
break;
}
for(int i=0;i<n;i++)
{
cin>>da[i];
}
cout<<"Sums of "<<tal<<":"<<endl;
dfs(0,0);
if(flag==0)
{
cout<<"NONE"<<endl;
}
}
return 0;
}