program skaicius;

  const PRF = 'SKAICIUS.IN';
        RZF = 'SKAICIUS.OUT';
         MAX = 100;
  
  type Treiksmes = array [0..MAX] of String;
  
  var sk: String; // pradinis duomuo;
      ilgis: integer; //jo skaitm. skaičius
      gauta1, gauta2: Treiksmes;
  
  procedure modeliuoti (sc: char; var gauta: Treiksmes);
    var i: integer;
        klaida: word;
        s: longint;
        var gauta_: Treiksmes;
  begin
     gauta_ := gauta;
     for i := 0 to MAX do
       gauta[i] := '';
     val (sc, s, klaida);
     for i := 0 to 100 do
       if gauta_[i] <> '' then begin //jei reikšmė buvo gauta anksčiau
          if i + s <= 100 then gauta[i+s]  := gauta_[i] + '+' + sc;
          if i - s >= 0 then gauta[i-s]    := gauta_[i] + '-'  + sc;
          if i * s <= 100 then gauta[i*s]  := gauta_[i] + '*'  + sc;
          if (s <> 0) and (i mod s = 0) then gauta[i div s] := gauta_[i] + '/' + sc;
       end;   
  end;
  
  
  procedure spresti (sk: String; var reisk: String);
    var i, j, s1, s2, s, klaida: integer;
        sc: char;
  begin
    ilgis := length(sk);
    for i := 0 to MAX do begin
      gauta1[i] := '';
      gauta2[i] := '';
    end;
    // kairėje bus tik vienas skaitmuo; 
    val (sk[1], s1, klaida);
    gauta1[s1] := sk[1];
    // desineje - visi like
    val (sk[2], s2, klaida);
    gauta2[s2] := sk[2];
    for i := 3 to ilgis do begin
       modeliuoti (sk[i], gauta2);
    end;
    // tikriname, gal radome sprendinį
    if length(gauta1[s1]) + length(gauta2[s1]) = 2*ilgis - 2
       then begin
          reisk := gauta1[s1] + '=' + gauta2[s1];
          exit;
    end;      
       
    //jei ne - peržiūrime visus variantus   
    for i := 1 to length(sk) do // kuris skaitmuo nagrinėjamas
      begin
        sc := sk[i];
        modeliuoti (sc, gauta1);
        modeliuoti (sc, gauta2);
        for j := 0 to MAX do 
           if length(gauta1[s1]) + length(gauta2[s1]) = 2*ilgis - 1
              then begin
                     reisk := gauta1[s1] + '=' + gauta2[s1];
                     exit;
             end;      
      end;
      reisk := '0';
  end;

  procedure skaityti (var sk: String);
    var f: text;
  begin
    assign (f, PRF);
    reset (f);
    readln (f, sk);
    close (f);
  end;  
  
  procedure rasyti (reisk: String);
    var f: text;
  begin
    assign (f, RZF);
    rewrite (f);
    writeln (f, reisk);
    close (f);
  end;  

  var reisk: String;
begin
  skaityti (sk);
  spresti (sk, reisk);
  rasyti (reisk);
end.