#include<bits/stdc++.h>
using namespace std;
vector<long long> haha(200001);
vector<long long> bruh(200001);
long long n;
pair<long long,long long> calc(long long lamb) {
long long ans = 0,ans2 = 0;
vector<long long> pr(n+1);
vector<long long> br(n+1);
for(long long i = 1; i <= n; i++) {
pr[i] = pr[i-1]-bruh[i]+bruh[i-1];
br[i] = br[i-1];
if(i > 1 && haha[i-1]+lamb > 0) {
br[i]++;
pr[i]+=haha[i-1]+lamb;
}
}
long long sb = 0,x = 0,sm = 0,big = 0;
for(long long i = 1; i <= n; i++) {
sb-=bruh[i]-bruh[i-1];
if(haha[i]+lamb > 0) {
x++;
sb+=haha[i]+lamb;
}
if(i > 1) {
long long a = sb-sm,b = x-big;
if(a > ans || (a == ans && b < ans2)) {
ans = a;
ans2 = b;
}
}
if(pr[i] < sm || (pr[i] == sm && br[i] > big)) {
sm = pr[i];
big = br[i];
}
}
return {ans,ans2};
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
long long m,a,b;
cin >> n >> m;
vector<pair<long long,long long>> wut(0);
for(long long i = 0; i < n; i++) {
cin >> a >> b;
b*=2;
wut.push_back({b,a});
}
sort(wut.begin(),wut.end());
for(long long i = 1; i <= n; i++) {
haha[i] = wut[i-1].second;
bruh[i] = wut[i-1].first;
}
long long l = -10000000000LL,r = 10000000000LL;
while(l < r) {
long long mid = (l+r+1)/2;
pair<long long,long long> c = calc(mid);
if(c.second <= m) {
l = mid;
}
else {
r = mid-1;
}
}
pair<long long,long long> c = calc(l);
pair<long long,long long> d = calc(l+1);
long long x1 = c.second,x2 = d.second;
long long y1 = c.first-x1*l,y2 = d.first-x2*(l+1);
if(x1 == m) {
cout << y1;
}
else {
long long s = (y2-y1)/(x2-x1);
cout << y1+(m-x1)*s;
}
return 0;
}