#include <iostream>
#include <cstdio>
#include <vector>
#include <string>
#include <algorithm>
#include <map>
#include <utility>
bool cmp(std::pair<int,int>a,std::pair<int,int>b)
{
return a.second>b.second;
}
int main()
{
int n,m;
std::cin>>n>>m;
std::map<int,int>getScore;
for(int i =0;i<n;i++)
{
int a,b;
std::cin>>a>>b;
getScore[a]=b;
}
std::vector<std::pair<int,int>>vec;
for(std::map<int,int>::iterator it = getScore.begin();it!=getScore.end();it++)
{
vec.push_back(std::pair<int,int>(it->first,it->second));
}
std::sort(vec.begin(),vec.end(),cmp);
int id = m*3/2;
id--;
int score = vec[id].second;
while(score ==vec[id].second)
{
if((id+1)>(n))
{
break;
}
else
{
if(vec[id+1].second==vec[id].second)
{
if(vec[id].first>vec[id+1].first)
{
int tmp = vec[id+1].first;
vec[id+1].first = vec[id].first;
vec[id].first = tmp;
}
id++;
}
else
{
break;
}
}
}
id++;
std::cout<<score<<' '<<id<<std::endl;
for(int i = 0;i<id;i++)
{
int o = vec[i].second;
int p = vec[i+1].second;
if(o==p)
{
if(vec[i].first>vec[i+1].first)
{
int tmp = vec[i+1].first;
vec[i+1].first = vec[i].first;
vec[i].first = tmp;
}
}
}
for(int i = 0;i<id;i++)
{
std::cout<<vec[i].first<<' '<<vec[i].second<<std::endl;
}
return 0;
}