#include <stdio.h>
#include <stdlib.h>
#define max_n 10000
typedef struct dp{
    int d;
    int p;
} dp;

int key(dp a,dp b);

int main(void){
    while(1){
        int n,m,ans=0;
        scanf("%d %d%*c",&n,&m);
        dp data[max_n];
        if(n==0 && m==0) return 0;
        for(int i=0;i<n;i++) scanf("%d %d%*c",&data[i].d,&data[i].p);
        qsort(data,n,sizeof(dp),key);
        for(int i=0;i<n;i++){
            // printf("d:%d p:%d m:%d\n",data[i].d,data[i].p,m);
            if(m >= data[i].d) m -= data[i].d;
            else if(m < data[i].d && m > 0){
                ans += data[i].p * (data[i].d - m);
                m = 0;
            }
            else ans += data[i].p * data[i].d;
        }
    printf("%d\n",ans);
    }
}

int key(dp a,dp b){
    return b.p - a.p;
}
