{
Written by Fyodor Menshikov 16.02.2005
16:12-16:59
}
var
   c:char;

   procedure nextChar;
   begin
      if eoln then
         c:=#13
      else
         read(c);
   end;

   procedure number(var n:integer);
   begin
      if c in ['1'..'9'] then begin
         n:=ord(c)-ord('0');
         nextChar;
         while c in ['0'..'9'] do begin
            n:=n*10+ord(c)-ord('0');
            nextChar;
            if n>121 then
               n:=122;
         end;
      end
      else
         halt(1);
   end;

var
   ff:array[1..121,1..121]of longint;

   function f(sum,max:integer):longint;
   begin
      if sum<1 then begin
         f:=1;
         exit;
      end;
      if max<1 then begin
         f:=0;
         exit;
      end;
      if max>sum then
         max:=sum;
      if ff[sum,max]<>-1 then begin
         f:=ff[sum,max];
         exit;
      end;
      ff[sum,max]:=f(sum,max-1)+f(sum-max,max);
      f:=ff[sum,max];
   end;

var
   p:array[0..121]of integer;
   len:integer;

   procedure encode(var code:longint);
   var
      sum,i:integer;
   begin
      sum:=0;
      for i:=1 to len do
         sum:=sum+p[i];
      code:=0;
      for i:=1 to len do begin
         code:=code+f(sum,p[i]-1);
         sum:=sum-p[i];
      end;
   end;

   procedure decode(sum:integer;code:longint);
   var
      i:integer;
   begin
      len:=0;
      repeat
         for i:=1 to sum+1 do begin
            if i=sum+1 then begin
               halt(1);
            end;
            if f(sum,i)>code then begin
               inc(len);
               p[len]:=i;
               code:=code-f(sum,i-1);
               sum:=sum-i;
               break;
            end;
         end;
      until sum=0;
   end;

var
   sum:integer;
   k,code:longint;
   i,j:integer;
begin
   assign(input,'input.txt');
   reset(input);
   assign(output,'output.txt');
   rewrite(output);
   nextChar;
   len:=0;
   sum:=0;
   while true do begin
      inc(len);
      number(p[len]);
      sum:=sum+p[len];
      if sum>121 then
         halt(1);
      if c='+' then
         nextChar
      else
         break;
   end;
   if c<>#13 then
      halt(1);
   readln;
   readln(k);
   for i:=1 to len do
      for j:=1 to len do
         if (i<j)and (p[i]<p[j]) then begin
            p[0]:=p[i];
            p[i]:=p[j];
            p[j]:=p[0];
         end;
   for i:=1 to 121 do
      for j:=1 to 121 do
         ff[i,j]:=-1;
   encode(code);
   if k>=f(sum,sum)-code then begin
      writeln('Impossible');
      halt;
   end;
   decode(sum,code+k);
   for i:=1 to len do begin
      if i>1 then
         write('+');
      write(p[i]);
   end;
   writeln;
end.