#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;
}