using System;
using System.Collections.Generic;
using System.Linq;
public class Program {
    public static void Main() {
        string[] inputs = Console.ReadLine().Split(' ');
        int.TryParse(inputs[0], out int n);
        int.TryParse(inputs[1], out int m);
        int t = (int)(1.5 * m);
        List<Candidate> lst = new List<Candidate>();

        for (int i = 0; i < n; i++)
        {
            string[] attributOfCan = Console.ReadLine().Split(' ');
            Candidate currCan = new Candidate(int.Parse(attributOfCan[0]), int.Parse(attributOfCan[1]));
            lst.Add(currCan);
        }
		//用linq排序
        var sortedCans = lst.OrderByDescending(can => can.grade).ThenBy(can => can.id).ToList();
        int threshHold = sortedCans[t-1].grade;
		//用linq得到满足面试分数的候选人
        var qualifiedCans = sortedCans.Where(can => can.grade >= threshHold);

        Console.WriteLine(threshHold + " " + qualifiedCans.Count());

        foreach (var can in qualifiedCans)
        {
            Console.WriteLine(can.id + " " + can.grade);
        }

    }
//用结构体定义候选人
    public struct Candidate    {
        public int id;
        public int grade;

        public Candidate(int inputID, int inputGrade) {
            id = inputID;
            grade = inputGrade;
        }
    }
}