//package test;

import java.util.*;
import java.io.*;

public class CF1 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		FastReader s = new FastReader();
		int n = s.nextInt();
		int k = s.nextInt();
		pair[] arr = new pair[n];
		for(int i=0;i<n;i++)
		{
			arr[i] = new pair();
			arr[i].l = s.nextLong();
			arr[i].b = s.nextLong();
		}
		Arrays.sort(arr, new mycompare());
		pair[] arr2 = new pair[n];
		for(int i=0;i<n;i++)
		{
			arr2[i] = new pair();
			arr2[i].b = arr[i].b;
			arr2[i].l = arr[i].l;
		}
		Arrays.sort(arr2, new mycompare1());
		TreeSet<pair> set = new TreeSet<>(new mycompare());
		long setsum = 0;
		int ptr = 0;
		long ans = 0;
		for(int i=0;i<n;i++)
		{
			while(!set.isEmpty() && set.first().b<arr[i].b)
			{
				setsum -= set.first().l;
				set.pollFirst();
			}
			while(set.size()<k && ptr<n)
			{
				ans = Math.max(ans, setsum*arr[i].b);
				if(arr2[ptr].b>=arr[i].b)
				{
					set.add(arr2[ptr]);
					setsum += arr2[ptr].l;
					//System.out.print(setsum+"-------");
				}
				ptr++;
			}
			//System.out.println(setsum+"-------");
			ans = Math.max(ans, setsum*arr[i].b);
			//System.out.println(ans);
		}
		System.out.println(ans);
	}
	
	static class pair{
		long b;
		long l;
	}
	
	static class mycompare implements Comparator<pair>{
		public int compare(pair lhs, pair rhs)
		{
			if(lhs.b<rhs.b)
				return -1;
			else if(lhs.b>rhs.b)
				return 1;
			else
			{
				if(lhs.l<=rhs.l)
					return -1;
				else
					return 1;
			}
		}
	}
	
	static class mycompare1 implements Comparator<pair>{
		public int compare(pair lhs, pair rhs)
		{
			if(lhs.l<rhs.l)
				return 1;
			else if(lhs.l>rhs.l)
				return -1;
			else
			{
				if(lhs.b<rhs.b)
					return -1;
				else if(lhs.b>rhs.b)
					return 1;
				else
					return 0;
			}
		}
	}
	
	static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;
 
        public FastReader()
        {
            br = new BufferedReader(new
                     InputStreamReader(System.in));
        }
 
        String next()
        {
            while (st == null || !st.hasMoreElements())
            {
                try
                {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e)
                {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }
 
        int nextInt()
        {
            return Integer.parseInt(next());
        }
 
        long nextLong()
        {
            return Long.parseLong(next());
        }
 
        double nextDouble()
        {
            return Double.parseDouble(next());
        }
 
        String nextLine()
        {
            String str = "";
            try
            {
                str = br.readLine();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            return str;
        }
    }

}