#include <stdio.h>
#include <stdlib.h>
int compare_int(const void *a, const void *b) {
       return *(int*)a - *(int*)b;
}
int main(void) {
   int n, m;
   // n は区間の数。mは予算。
   int i;
   while (1) {
      scanf("%d %d", &n, &m);
      if (n==0 && m==0) break;
      int d[n]; // 区間の数だけ距離の配列。中には距離が入る
      int p[n]; // 襲われる回数の期待値の配列。中には区間ごとの期待値が入る。
      
      for (i=0; i<n; i++) 
         scanf("%d %d", &d[i], &p[i]);
      // ここで、距離の配列と期待値の配列がそれぞれ埋まっている。
      qsort(p, n, sizeof(int), compare_int);
      // 小さい順に並んでいます
      int temp;
      for ( i=0; i< (n/2); i++) {
         temp = p[i];
         p[i] = p[ n-1-i ];
         p[ n-1-i ] = temp;
      }
      // 昇順に入れ替えた。
      
      for (i=0; i<m; i++)
         p[i] = 0;
      int goukei = 0;
      for (i=0; i<n; i++)
         goukei += p[i];
      printf("%d\n", goukei);
   }
   return (0);
}