연꽃잎이 떠 있는 연못에 개구리가 한 마리 살고 있다. 이 개구리는 연꽃잎에서 연꽃잎으로 뛰어 옮겨 다니기를 좋아한다.
연못은 좌표평면에서 x≥0, y≥0인 영역이다. 연못에 떠 있는 각 연꽃잎은 한 변의 길이가 r이고 각 변이 좌표축과 평행한 정사각형이다. 모든 연꽃잎의 크기는 같고, 서로 겹치지 않으며, 두 연꽃잎의 테두리가 맞닿는 경우도 없다.

그림 1
좌표 (0,0)을 포함하는 연꽃잎 S는 항상 존재하며, 개구리는 처음에 이 연꽃잎 위에 놓여 있다.
개구리는 한 번의 점프로 최대 거리 d만큼 이동할 수 있으나, 동·서·남·북 네 방향으로만 점프할 수 있다. 따라서 개구리가 어떤 연꽃잎 A 위에서 점프하면 도달할 수 있는 영역은 그림 2, 그림 3의 어두운 부분과 같다. 개구리가 연꽃잎 A에서 다른 연꽃잎 B로 점프하려면 이 영역 안에 B의 일부가 들어 있어야 한다(그림 2). 그림 3처럼 이 영역에 B의 테두리가 닿기만 해도 점프할 수 있다고 본다.

그림 2

그림 3
개구리는 연꽃잎 위를 자유롭게 이동하거나 연꽃잎에서 연꽃잎으로 점프하여 여러 연꽃잎에 도달할 수 있다. 개구리가 도달할 수 있는 연꽃잎 위의 점 (a,b) 가운데 (0,0)에서 가장 먼 점까지의 거리를 구하여라. 여기서 점 (a,b)의 (0,0)으로부터의 거리는 a+b로 계산한다.
첫째 줄에 연꽃잎의 개수 N과 연꽃잎 한 변의 길이 r이 공백을 사이에 두고 주어진다 (1≤N≤100000, 1≤r≤10000).
다음 N개의 줄에는 각 연꽃잎의 왼쪽 아래 꼭짓점 좌표 x와 y가 공백을 사이에 두고 주어진다 (0≤x,y≤10000000).
마지막 줄에는 개구리가 한 번의 점프로 이동할 수 있는 최대 거리 d가 주어진다 (1≤d≤1000000).
개구리가 (0,0)으로부터 도달할 수 있는 가장 먼 점까지의 거리를 한 줄에 출력한다.