const MAX_K = 10101010; var a: array[0..MAX_K] of integer; f: text; begin Assign(f, '27-124b.txt'); reset(f); var N, K, V, M: integer; readln(f, N, K, V, M); M += 1; for var i := 0 to K - 1 do a[i] := 0; var sum: int64 = 0; for var i := 1 to N do begin var id, cnt: integer; readln(f, id, cnt); id := id mod K; var x := (cnt + V - 1) div V; a[id] := x; if (id < M) or (id > K - M) then sum += x; end; if M > K - M then writeln(sum) else begin var ans: int64 = 0; for var i := 0 to K - 1 do begin if a[i] <> 0 then ans := max(ans, sum); sum += a[(i + M) mod K]; sum -= a[(K + i - M) mod K]; end; writeln(ans); end; end.