program stogas;
  { 95 u‘davinys }
   type virbas = (a, b, c, d);
        virbai = array [a..d] of integer; { virb— ilgiai }

  procedure perstatymas (var v: virbai; { perstatyti virbai }
                         var gerai, { virb— perstatyti nereikia }
                         galima: boolean
                         { ar galima perstatyti, jei ‘inome, ka reikia });
    var i, j, min: virbas;
        virb: integer;
  begin
    { tikrinsime, ar virbus perstatyti reikia }
    gerai := v[a] + v[c] = v[b] + v[d];
    if not gerai
       then begin
              { surikiuosime virbus did‚jimo tvarka }
              for i := a to c do
                 begin
                   min := i;
                   for j := succ(i) to d do
                       if v[min] > v[j]
                          then min := j;
                   { kei‡iame vietomis }
                   virb := v[i];
                   v[i] := v[min];
                   v[min] := virb
                 end;
                { ilgiausias virbas turi b–ti virbas c }
              virb := v[c];
              v[c] := v[d];
              v[d] := virb;
              galima := v[a] + v[c] = v[b] + v[d];
            end;
  end; { perstatytmas }

  var i: virbas;
      v: virbai;
      gerai, galima: boolean;
begin
  for i := a to d do  { skaitomi pradiniai duomenys }
    read (v[i]);
  perstatymas (v, gerai, galima);
  if gerai
     then writeln ('GALIMA')
     else if galima
             then begin write ('GALIMA PERSTATYTI TAIP: ');
                        for i := a to d do
                          write (v[i], ' ');
                        writeln
                  end
             else writeln ('PERSTATYTI NEGALIMA')
end.
