#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

struct wall
{
    int a;
    int k;
};

bool sort_f1(wall w1, wall w2)
{
    return w1.k>w2.k;
}

bool sort_f2(wall w1, wall w2)
{
    return w1.a>w2.a;
}

const int maxn=100111;
int n, s;
wall w[maxn];

int main()
{
    freopen("castle.in", "r", stdin);
    freopen("castle.out", "w", stdout);
    cin >>n >>s;
    int i;
    for (i=0; i<n; ++i) cin >>w[i].a >>w[i].k;

    sort(&w[0], &w[n], sort_f1);
    //for (i=0; i<n; ++i) cout <<w[i].k <<' ';
    //return 0;

    int d; //скока ставим сюда
    for (i=0; i<n; ++i)
    {
        d=min(w[i].a/w[i].k, s);
        s-=d;
        w[i].a-=d*w[i].k;
    }

    sort(&w[0], &w[n], sort_f2);
    for (i=0; i<n; ++i)
    {
        if (s)
        {
            w[i].a=0;
            s--;
        }
    }

    long long ans=0;
    for (i=0; i<n; ++i) ans+=w[i].a;
    cout <<ans <<endl;
    return 0;
}
