#include<stdio.h>
#include<stdlib.h>
typedef struct{
    int d;
    int p;
}Data;
int comp(const void *a,const void *b){
    Data c = *(Data *)a;
    Data d = *(Data *)b;
    if(c.p>d.p) return -1;
    else return 1;
}
int main(void){
    while(1){
        int n,m;
        scanf("%d%d",&n,&m);
        if(n+m==0)break;
        Data x[10000];
        for(int i=0;i<n;i++){
            scanf("%d%d",&x[i].d,&x[i].p);
        }
        qsort(x,n,sizeof(Data),comp);
        for(int i=0;i<n;i++){
            if(m>=x[i].d){
                m-=x[i].d; x[i].d=0;
            }else{
                x[i].d-=m; m=0;
            }
            if(m==0) break;
        }
        int sum=0;
        for(int i=0;i<n;i++){
            sum+=x[i].d*x[i].p;
        }
        printf("%d\n",sum);
    }
}

