program sieninis_kalendorius;
{ 96 u‘davinys }
  type metai = 1583..2000;
       menuo = 1..12;
       diena = 0..31; { langelis gali b–ti tu˛‡ias, tad turi b–ti ir 0 }
       data = record
                met: metai;
                men: menuo;
                dn: diena
              end;

  function kel (mt: metai): boolean;
  { ar metai keliamieji }
  begin
    kel := (mt mod 400 = 0) or
           (mt mod 100 <> 0) and (mt mod 4 = 0)
  end; { kel }

  function dmen (mt: metai; mn: menuo): diena;
  { kiek dien— turi mt met— m‚nuo mn }
  begin
    case mn of
      4, 6, 9, 11 : dmen := 30;
      2: if kel(mt) then dmen := 29
                     else dmen := 28;
      else dmen := 31
    end
  end; { dm‚n }

  function pirma_diena (mt: metai): diena;
  { randa kokia savait‚s diena prasideda metai }
   var dien: diena;
       m, i: metai;
       posl: integer;
  begin
    { 2000 metus pasirinkome atskaitos metais }
    dien := 6; m := 2000;
    for i := m-1 downto mt do
      begin
        if kel (i) { randame poslink¨ }
           then posl := 2
           else posl := 1;
        if dien - posl < 1
           then dien := dien + 7 - posl
           else dien := dien - posl;
      end;
    pirma_diena := dien
  end; { pirma_diena }

  function pirma_men_dien (mt: metai; mn: menuo; d: diena): diena;
  { randa kuria savait‚s diena prasideda mt met— m‚n m‚nuo }
  { kai ‘inoma, kuria savait‚s diena prasideda metai mt }
    var dien, i: integer;
  begin
    dien := d;
    for i := 1 to mn-1 do
      dien := dien + dmen (mt, i);
    if dien mod 7 = 0
       then pirma_men_dien := 7
       else pirma_men_dien := dien mod 7;
  end; { pirma_m‚n_dien }

  function iskirptas_langelis (d: data; skyl: integer): diena;
  { randa skai‡i—, kuris matosi pro i˛kirpt… langel¨ }
    var met_dien, men1_dien, men2_dien: diena;
        post: integer;
  begin
    { rasime kokia savait‚s diena prasideda duotieji metai }
    met_dien := pirma_diena (d.met);
    { rasime kokia savait‚s diena prasideda duotasis m‚nuo }
    men1_dien := pirma_men_dien (d.met, d.men, met_dien);
    { rasime kokia savait‚s diena prasideda m‚nuo, kurio diena }
    { matysis pro i˛kirpt… langel¨ }
    men2_dien := pirma_men_dien (d.met, d.men+skyl, met_dien);
    { rasime post–m¨ }
    post := men1_dien - men2_dien;
    if ((d.dn + post) <= 0) or (d.dn + post > dmen (d.met, d.men+skyl))
       then iskirptas_langelis := 0
       else iskirptas_langelis := d.dn + post
  end; { i˛kirptas_langelis }

  var d: data;
      skyl: integer;
      sk: diena;
begin
  readln (d.met, d.men, d.dn, skyl);
  sk := iskirptas_langelis (d, skyl);
  if sk = 0
     then writeln ('Tu˛‡ia')
     else writeln (sk);
end.


