#include <stdio.h>
#include <stdlib.h>

typedef struct {
	int D,P;
} kukan_t;

/* kouzyun ni sooto suru */
int cmp(const void *x,const void *y) {
	int a=((kukan_t*)x)->P;
	int b=((kukan_t*)y)->P;
	if(a<b)return 1;
	if(a>b)return -1;
	return 0;
}

int main(void) {
	int N,M;
	while(scanf("%d%d",&N,&M)==2 && (N!=0 || M!=0)) {
		static kukan_t kukan[10000];
		int i;
		int ret=0;
		for(i=0;i<N;i++) {
			if(scanf("%d%d",&kukan[i].D,&kukan[i].P)!=2)return 1;
		}
		qsort(kukan,N,sizeof(kukan[0]),cmp);
		for(i=0;i<N;i++) {
			if(M>=kukan[i].D) {
				M-=kukan[i].D;
			} else {
				ret+=kukan[i].P*(kukan[i].D-M);
				M=0;
			}
		}
		printf("%d\n",ret);
	}
	return 0;
}