#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct sample {
  int v, w;
  sample(int v = 0, int w = 0) : v(v), w(w) {}
  bool operator<(const sample &o) const {return w < o.w;}
};

int main() {
  while (true) {
    int n, l;
    cin >> n >> l;
    if (n == -1) break;
  
    vector<sample> arr;
    
    for (int i = 0; i < n; i++) {
      int v, w;
      cin >> v >> w;
      arr.push_back(sample(v, w));
    }
    
    sort(arr.begin(), arr.end());
    
    int ans = 0;
    for (int i = n - 1; i >= 0 && l > 0; i--) {
      if (arr[i].v > l) arr[i].v = l;
      ans += arr[i].w * arr[i].v;
      l -= arr[i].v;
    }
    
    cout << ans << endl;
  }
  
  return 0;
}

