import numpy as np N, P = map(int, input().split()) A = list(map(int, input().split())) A.sort() dp = np.zeros(P+1, dtype=np.int64) ndp = np.zeros_like(dp) for i in range(1, N): get = A[i] pena = A[i] - A[i-1] newDP = np.copy(dp) if pena: newDP[pena:] = np.maximum(newDP[pena:], dp[:-pena] + get) else: newDP += get np.maximum(dp, ndp, out=ndp) dp, ndp = ndp, newDP np.maximum(dp, ndp, out=ndp) print(ndp.max())