program sukeiciami_skaitmenys;
  { 6 u‘davinys }
{----------------------------------------------------------}
  const I = 10;     { maksimalus skai‡iaus ilgis }
  type  s = array [1..I] of 0..9; { skai‡ius
                     i÷skaidytas skaitmenimis }
  function skaicius (n : longint) : longint;
    var sk    : s;    { duotas skai‡ius, ižskaidytas skaitmenimis }
        sk_sk,        { duoto skai‡iaus skaitmen— skai‡ius }
        nr,           { fiksuojamo skaitmens numeris }
        max_nr,       { did‘iausio skaitmens numeris }
        j     : 0..10;
        max   : 0..9; { did‘iausias skaitmuo }
        s     : longint;
        rasta : boolean;
  begin
    sk_sk := 0;
    repeat { skai‡ius ižskaidomas skaitmenimis }
           { masyve skai‡ius vaizduojamas atbulai }
      sk_sk := sk_sk + 1;
      sk [sk_sk] := n mod 10;
      n := n div 10
    until n = 0;
    nr := sk_sk; { fiksuojama aukž‡iausia skiltis }
    rasta := false;
    repeat
      max := sk[nr];
      max_nr := nr;
      { tikrinami visi ‘emesni— skil‡i— skaitmenys }
      for j := 1 to nr - 1 do
          if sk[j] > max
             then begin
                    max := sk[j];
                    max_nr := j;
                    rasta := true
                  end;
      nr := nr - 1;
    until (nr <= 1) or rasta;
    nr := nr + 1;
    if rasta
       then begin
              { skaitmen— keitimas vietomis }
              sk[max_nr] := sk[nr];
              sk[nr] := max
            end;
    s := 0;  { rezultato surinkimas iž skaitmen— }
    for j := sk_sk downto 1 do
        s := s * 10 + sk[j];
    skaicius := s
  end;
{----------------------------------------------------------}
  var n : longint;
begin
  write ('­veskite skai‡i—: ');
  readln (n);
  writeln (skaicius (n))
 end.
