program stogas;
  { 95 u‘davinys }

  procedure sukeisti (var x, y: longint);
  { sukei‡ia abu skai‡ius vietomis }
    var laik: longint;
  begin
    laik := x;
    x := y;
    y := laik
  end; { sukeisti }

  procedure deti_stoga (var a, b, c, d: longint; { perstatyti virbai }
                        var gerai, { virb— perstatyti nereikia }
                        galima: boolean
                        { ar galima perstatyti, jei ‘inome, ka reikia });
    var laik: longint;
  begin
    gerai := a + c = b + d;
    if not gerai and (a + b = c + d)
       then sukeisti (b, c)
       else if not gerai and (a + d = b + c)
            then sukeisti (c, d);
    galima := a + c = b + d;
  end; { d‚ti_stog… }

  var a, b, c, d: longint;
      gerai, galima: boolean;
begin
  read (a, b, c, d);{ skaitomi pradiniai duomenys }
  deti_stoga (a, b, c, d, gerai, galima);
  if gerai
     then writeln ('GALIMA')
     else if galima
             then begin write ('GALIMA PERSTATYTI TAIP: ');
                        writeln (a, ' ', b, ' ', c, ' ', d);
                  end
             else writeln ('PERSTATYTI NEGALIMA')
end.
