using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static long NN => long.Parse(ReadLine()); static long[] NList => ReadLine().Split().Select(long.Parse).ToArray(); public static void Main() { Solve(); } static void Solve() { var c = NList; var (n, d) = (c[0], c[1]); var dpt = 0L; var dpk = long.MinValue / 2; for (var i = 0; i < n; ++i) { c = NList; var ndpt = Math.Max(dpt + c[0], dpk - d + c[0]); var ndpk = Math.Max(dpt - d + c[1], dpk + c[1]); dpt = ndpt; dpk = ndpk; } WriteLine(Math.Max(dpt, dpk)); } }