program area; var done: Boolean; i, j: integer; data: array[0..99,0..99] of boolean; x1, x2, y1, y2: integer; procedure reportArea; var i, j: integer; area: integer; begin area := 0; for i:= 0 to 99 do begin for j:= 0 to 99 do begin if (data[i,j]) then area := area + 1; end; end; writeln(area:1); end; procedure initData; var i, j: integer; begin for i := 0 to 99 do begin for j := 0 to 99 do begin data[i,j] := false; end; end; end; procedure swap(var i, j: integer); var temp: integer; begin temp:= i; i := j; j := temp; end; begin done := false; initData; repeat readln(x1, y1, x2, y2); if (x1 = -2) then begin reportArea; done := true; end else if (x1 = -1) then begin reportArea; initData; end else begin if (x2 < x1) then swap(x1, x2); if (y2 < y1) then swap(y1, y2); for i := x1 to (x2-1) do begin for j := y1 to (y2-1) do begin data[i,j] := true; end; end; end; until done; end.