#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 3e5 + 5, INF = 0x3f3f3f3f;
const LL mod = 1e9 + 7;
int n;
LL s;
LL dp[N], sumt[N], sumc[N];
int q[N], hh, tt;
LL X(int i) {return sumc[i];}
LL Y(int i) {return dp[i];}
double slope(int i, int j){return (double)(Y(i) - Y(j)) / (double)((X(i) - X(j) == 0 ? 1e-9 : X(i) - X(j)));}
int find(LL k)
{
int l = hh, r = tt, res = tt;
while(l <= r)
{
int mid = l + r >> 1;
if(slope(q[mid], q[mid + 1]) > k) r = mid - 1, res = mid;
else l = mid + 1;
}
return res;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> s;
for(int i = 1; i <= n; i ++)
cin >> sumt[i] >> sumc[i], sumt[i] += sumt[i - 1], sumc[i] += sumc[i - 1];
hh = 1, tt = 0;
for(int i = 1; i <= n; i ++)
{
while(hh < tt && slope(q[tt], q[tt - 1]) >= slope(q[tt - 1], i - 1)) tt --;
q[++ tt] = i - 1;
int j = q[find(sumt[i] + s)];
dp[i] = dp[j] + sumt[i] * (sumc[i] - sumc[j]) + s * (sumc[n] - sumc[j]);
}
cout << dp[n] << '\n';
return 0;
}