#include using namespace std; #define rep(i,n) for (int (i)=(0);(i)<(int)(n);++(i)) using ll = long long; using P = pair; using namespace std; template void vin(vector& v, int n) { v.resize(n); for (int i = 0; i < n; ++i) { cin >> v[i]; } } ll N, M, A[101010], B[101010], dp[101010][3]; int main() { cin >> N >> M; for (int i=1; i<=N; ++i) cin >> A[i] >> B[i]; dp[1][0] = -1e18; dp[1][1] = max(B[1],A[1]); dp[1][2] = max({A[1]*M, A[1]*(M-1)+B[1], B[1]}); for (int i=2; i<=N; ++i) { dp[i][0] = max({dp[i-1][0], dp[i-1][1], dp[i-1][2]}); dp[i][1] = max(dp[i-1][1], dp[i-1][2]) + max(A[i], B[i]); dp[i][2] = dp[i-1][2] + max({A[i]*M, A[i]*(M-1)+B[i], B[i]}); } cout << max({dp[N][0], dp[N][1], dp[N][2]}) << endl; }