package yukicoder; import java.util.Scanner; public class N561 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int N=sc.nextInt(); int D=sc.nextInt(); int[] T=new int[N]; int[] K=new int[N]; int buf=0; for(int i=0;i<N;i++) { T[i]=sc.nextInt(); K[i]=sc.nextInt(); } int Tmax=T[0]; int Kmax=K[0]-D; for(int i=1;i<N;i++) { buf=Tmax; Tmax=max(Tmax+T[i],Kmax+T[i]-D); Kmax=max(Kmax+K[i],buf+K[i]-D); } System.out.println(max(Tmax,Kmax)); } static int max(int a,int b) { return (a>=b)?a:b; } }