#include <bits/stdc++.h>
using namespace std;
const int NR = 300051;
struct Node {
  long long t, b;
} a[NR];
int n, k;
long long ans;
priority_queue<int> q;
bool cmp(Node x, Node y) { return x.b > y.b; }
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; i++) scanf("%d%d", &a[i].t, &a[i].b);
  sort(a + 1, a + n + 1, cmp);
  long long s = 0;
  for (int i = 1; i <= n; i++) {
    if (q.size() < k) {
      q.push(-a[i].t);
      s += a[i].t;
    } else if (a[i].t > -q.top()) {
      s += a[i].t - (-q.top());
      q.pop();
      q.push(-a[i].t);
    }
    ans = max(ans, s * a[i].b);
  }
  printf("%lld\n", ans);
  return 0;
}
