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;
}
}
}