#include <bits/stdc++.h>
const double eps = (1e-9);
using namespace std;
int dcmp(long double a, long double b) {
  return fabsl(a - b) <= eps ? 0 : (a > b) ? 1 : -1;
}
int getBit(int num, int idx) { return ((num >> idx) & 1) == 1; }
int setBit1(int num, int idx) { return num | (1 << idx); }
long long setBit0(long long num, int idx) { return num & ~(1ll << idx); }
long long flipBit(int num, int idx) { return num ^ (1 << idx); }
void FS() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
int countNumBit1(int mask) {
  int ret = 0;
  while (mask) {
    mask &= (mask - 1);
    ++ret;
  }
  return ret;
}
set<pair<int, int> > av, nav;
set<int> sum_id;
vector<pair<pair<int, int>, int> > v2;
int main() {
  int n, k;
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    int t, b;
    cin >> t >> b;
    v2.push_back(make_pair(make_pair(b, t), i));
  }
  sort(((v2).begin()), ((v2).end()));
  int first_id = v2[0].second;
  for (int i = n - 1; i >= 1; i--) {
    av.insert(make_pair(-v2[i].first.second, v2[i].second));
    nav.insert(make_pair(-v2[i].first.second, v2[i].second));
  }
  int cnt = 0;
  long long sum = 0;
  for (auto it = av.begin(); it != av.end(); it++) {
    int val = (*it).first * -1;
    int id = (*it).second;
    if (cnt < k - 1 && id != first_id) {
      sum += val;
      sum_id.insert(id);
      nav.erase(nav.find(make_pair(-val, id)));
      cnt++;
    }
  }
  long long mx = 0;
  for (int i = 0; i < n; i++) {
    int mi = v2[i].first.first;
    int len = v2[i].first.second;
    int id = v2[i].second;
    int next_id = -1;
    if (i + 1 < n) next_id = v2[i + 1].second;
    long long ans = 1ll * mi * (len + sum);
    mx = max(mx, ans);
    if (next_id != -1) {
      auto itt = nav.find(make_pair(-v2[i + 1].first.second, next_id));
      if (itt != nav.end()) nav.erase(itt);
      if (sum_id.find(next_id) != sum_id.end()) {
        sum_id.erase(next_id);
        sum -= v2[i + 1].first.second;
        if (((int)(nav).size()) > 0) {
          int val = -(*nav.begin()).first;
          int index = (*nav.begin()).second;
          nav.erase(nav.begin());
          sum += val;
          sum_id.insert(index);
        }
      }
    }
  }
  cout << mx << endl;
}
