program pomidorai;
  { vyresni—j— grup‚s u‘davinys }
  var n, m1, m2, m3, d: integer;

  function kiek (n, { pomidor— skai‡ius }
                 m1, m2, m3, { raudono pomidoro numeris }
                 d: { dien— skai‡ius } integer): integer;
    var sr1, sr2, sr3, sr4: integer;
  begin
    { pomidor— eilŠ suskaidome Ť keturias sritis;
      R reižkia raudon… pomidor…;
      ---1---R----2---R---3---R---4--- }
    sr1 := 0; sr2 := 0; sr3 := 0; sr4 := 0;
    { neprinokusi— pomidor— skai‡ius pirmoje srityje }
    if d < m1-1 then sr1 := m1 - 1 - d;
    { neprinokusi— pomidor— skai‡ius antroje srityje }
    if d < ((m2 - m1 - 1) div 2 + (m2 - m1 - 1) mod 2)
       then sr2 := m2 - m1 - 1 - 2*d;
    { neprinokusi— pomidor— skai‡ius tre‡ioje srityje }
    if d < ((m3 - m2 - 1) div 2 + (m3 - m2 - 1) mod 2)
       then sr3 := m3 - m2 - 1 - 2*d;
    { neprinokusi— pomidor— skai‡ius ketvirtoje srityje }
    if d < n - m3 then sr4 := n - m3 - d;
    writeln ('1 sritis: ', sr1);
    writeln ('2 sritis: ', sr2);
    writeln ('3 sritis: ', sr3);
    writeln ('4 sritis: ', sr4);
    kiek := sr1 + sr2 + sr3 + sr4;
  end; { kiek }

begin
  readln (n, m1, m2, m3, d);
  writeln (kiek (n, m1, m2, m3, d));
end.