program budvardziu_laipsniavimas;
  { 89 u‘davinys }

  type budvardis = string;

  procedure laipsniavimas (nelyg: budvardis;      { nelyginis }
                           var aukst: budvardis;  { aukžtesnysis }
                           var auksc: budvardis   { aukž‡iausiasis } );
    var k: integer; { ‘od‘io ilgis }
        vyr: boolean;
        gal: integer;
  begin
    k := length (nelyg);
    vyr := nelyg[k] = 's'; { nustatome giminŠ }
    if vyr    { vyrižkoji gimin‚ }
       then gal := 2
       else gal := 1;
    { atmetame gal–nŠ }
    delete (nelyg, k-gal+1, gal);
    k := k - gal;
    { jei yra minkžtumo ‘enklas - jŤ atmetame }
    if nelyg[k] = 'i'
       then begin
              delete (nelyg, k, 1);
              k := k - 1
            end;
    { sudarome aukžtesnŤjŤ laipsnŤ }
    if nelyg[k] = '‡'
       then aukst := copy (nelyg, 1, k-1) + 't'
       else aukst := nelyg;
    if vyr
       then aukst := aukst + 'esnis'
       else aukst := aukst + 'esn‚';
    { sudarome aukž‡iausi…jŤ laipsnŤ }
    case nelyg[k] of
      't': auksc := copy (nelyg, 1, k-1) + '‡';
      'd': auksc := nelyg + '‘';
      else auksc := nelyg
    end;
    if vyr
       then auksc := auksc + 'iausias'
       else auksc := auksc + 'iausia';
  end; { laipsniavimas }

  var nelyg, aukst, auksc: budvardis;
begin
  readln (nelyg);
  laipsniavimas (nelyg, aukst, auksc);
  writeln (aukst, ' ', auksc);
end.



