type
TSol = array [1..100] of Integer;
var
n, m : Integer;
a : array [1..100] of Integer;
procedure Solution (cnt, sum : Integer; b : TSol);
var
i : Integer;
begin
if sum = n then begin
for i := 1 to m do
if b[i] <> 0 then
Write (b[i], '+');
WriteLn(#8, ' = ', n)
end;
if cnt > m then
Exit;
for i := 1 to m do begin
if (b[i] = a[i]) or (b[i] <> 0) then
Continue;
b[i] := a[i];
Solution (i, sum + a[i], b);
b[i] := 0
end;
end;
var
b : TSol;
i : Integer;
begin
ReadLn (n, m);
for i := 1 to m do
Read (a[i]);
for i := 1 to m do begin
b[i] := a[i];
Solution (i, a[i], b);
b[i] := 0
end
end.
dHlwZQogICAgICAgIFRTb2wgPSBhcnJheSBbMS4uMTAwXSBvZiBJbnRlZ2VyOwoKdmFyCiAgICAgICAgbiwgbSA6IEludGVnZXI7CiAgICAgICAgYSA6IGFycmF5IFsxLi4xMDBdIG9mIEludGVnZXI7Cgpwcm9jZWR1cmUgU29sdXRpb24gKGNudCwgc3VtIDogSW50ZWdlcjsgYiA6IFRTb2wpOwp2YXIKICAgICAgICBpIDogSW50ZWdlcjsKYmVnaW4KICAgICAgICBpZiBzdW0gPSBuIHRoZW4gIGJlZ2luCiAgICAgICAgICAgICAgICBmb3IgaSA6PSAxIHRvIG0gZG8KICAgICAgICAgICAgICAgICAgICAgICAgaWYgYltpXSA8PiAwIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZSAoYltpXSwgJysnKTsKICAgICAgICAgICAgICAgIFdyaXRlTG4oIzgsICcgPSAnLCBuKQogICAgICAgIGVuZDsKCgogICAgICAgIGlmIGNudCA+IG0gdGhlbgogICAgICAgICAgICAgICAgRXhpdDsKCiAgICAgICAgZm9yIGkgOj0gMSB0byBtIGRvIGJlZ2luCiAgICAgICAgICAgICAgICBpZiAoYltpXSA9IGFbaV0pIG9yIChiW2ldIDw+IDApIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgQ29udGludWU7CgogICAgICAgICAgICAgICAgYltpXSA6PSBhW2ldOwogICAgICAgICAgICAgICAgU29sdXRpb24gKGksIHN1bSArIGFbaV0sIGIpOwogICAgICAgICAgICAgICAgYltpXSA6PSAwCiAgICAgICAgZW5kOwoKZW5kOwoKdmFyCiAgICAgICAgYiA6IFRTb2w7CiAgICAgICAgaSA6IEludGVnZXI7CgpiZWdpbgogICAgICAgIFJlYWRMbiAobiwgbSk7CgogICAgICAgIGZvciBpIDo9IDEgdG8gbSBkbwogICAgICAgICAgICAgICAgUmVhZCAoYVtpXSk7CgogICAgICAgIGZvciBpIDo9IDEgdG8gbSBkbyBiZWdpbgogICAgICAgICAgICAgICAgYltpXSA6PSBhW2ldOwogICAgICAgICAgICAgICAgU29sdXRpb24gKGksIGFbaV0sIGIpOwogICAgICAgICAgICAgICAgYltpXSA6PSAwCiAgICAgICAgZW5kCmVuZC4K