""" https://yukicoder.me/problems/no/818 2~K-1日目までは同じだろう 1 2 Last A A A 0 メリット無さそう - - - """ N,M = map(int,input().split()) now = [0,0] ans = 0 ed = 1 fi = 0 if M==1 else 1 mid = M - ed - fi for i in range(N): A,B = map(int,input().split()) n2 = [0,0] if 0 <= A <= B: n2[0] = max(n2[0], now[0] + fi * A + mid * A + ed * B) n2[1] = max(n2[1], max(now) + B) elif B <= A and 0 <= A: n2[0] = max(n2[0], now[0] + A * M) n2[1] = max(n2[1], max(now) + A) else: n2[0] = max(n2[0], now[0] + max(A*M,B)) n2[1] = max(n2[1], max(now) + max(A,B)) # print (n2) now = n2 ans = max(ans, max(now)) print (ans)