#include <bits/stdc++.h>
using namespace std;
const long long N = 1e6 + 10;
long long PI = acos(-1.0), MOD = 1000000007;
long long n, m, x, y, z, k, sol, sum, ans, l, r, xx, yy, t;
pair<long long, long long> a[N], b[N], mem[1000][1000];
vector<pair<long long, long long> > v;
vector<pair<long long, long long> > v1;
vector<pair<long long, long long> > v2;
vector<pair<long long, long long> > vp;
map<long long, long long> m1;
map<long long, long long> m2;
string s1, s2, s;
set<pair<long long, long long> > st;
char c;
void bug() { cout << "DONE" << endl; }
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> x >> y;
    a[i] = {x, y};
    v.push_back({y, i});
    v1.push_back({x, i});
  }
  sort(v1.begin(), v1.end());
  sort(v.begin(), v.end());
  long long idx = 0;
  sum = 0;
  for (int i = 0; i < n; i++) {
    m1[v[i].second] = 1;
    if (m2[v[i].second]) {
      sum -= a[v[i].second].first;
      idx--;
    }
    while (!v1.empty() && idx < k - 1) {
      if (m1[v1.back().second]) {
        v1.pop_back();
        continue;
      }
      m2[v1.back().second] = 1;
      sum += v1.back().first;
      idx++;
      v1.pop_back();
    }
    sol = max(sol, (sum + a[v[i].second].first) * v[i].first);
  }
  cout << sol << endl;
  return 0;
}
