// package ArraysAndSearching;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.TreeSet;

public class PlayList {
    public static void main(String[] args)throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        String line[]=br.readLine().split(" ");
        int n=Integer.parseInt(line[0]);
        int k=Integer.parseInt(line[1]);
        ArrayList<Song> a=new ArrayList<>();
        for(int i=0;i<n;i++){
            line=br.readLine().split(" ");
            int len=Integer.parseInt(line[0]);
            int beauty=Integer.parseInt(line[1]);
            a.add(new Song(len,beauty));
        }
        Collections.sort(a);
        long ans=1;
        long sum=0;
        PriorityQueue<Integer> longest=new PriorityQueue<>();
        for(int i=n-1;i>=0;i--){
            int beauty=a.get(i).beauty;
            long len=sum+a.get(i).len;
//            System.out.println(beauty*len);
            ans=Math.max(ans,beauty*len);
            if(longest.size()<k-1){
                longest.add(a.get(i).len);
                sum+=a.get(i).len;
            }
            else{
                if(longest.size()!=0&&longest.peek()<a.get(i).len){
                    sum-=longest.poll();
                    sum+=a.get(i).len;
                    longest.add(a.get(i).len);
                }
            }
        }
        System.out.println(ans);
    }
}

class Song implements Comparable<Song>{
    int len,beauty;
    public Song(int len,int beauty){
        this.len=len;
        this.beauty=beauty;
    }

    @Override
    public int compareTo(Song o) {
        return this.beauty-o.beauty;
    }
}
