// 构建二纬数据
#include <iostream>
#include <iterator>
#include <utility>
using namespace std;
#include <map>
#include <algorithm>
#include <vector>
#include <utility>
int main() {
int n, m, k, s, linc, cnt = 0;
cin >> n >> m;
int t = 1.5 * m;
cnt = t;
multimap<int, int> mp;
vector<vector<int>> v(10000, vector<int>(101));
while (cin >> k >> s) { // 注意 while 处理多个 case
v[s].push_back(k);
mp.insert(make_pair(s, k));
}
for (auto it = mp.rbegin(); it != mp.rend(); it++) {
t--;
if (linc == it->first) {
cnt++;
}
if (t == 0) {
linc = it->first;
}
}
cout << linc << " " << cnt << endl;
// for (auto it = mp.rbegin(); it != mp.rend(); it++) {
// if (it->first >= linc) {
// cout << it->second << " " << it->first << endl;
// }
// }
for (int i = 101; i >= linc; i--) {
for (int j = 0; j < v[i].size(); j++) {
sort(v[i].begin(), v[i].end());
if (v[i][j] != 0) {
cout << v[i][j] << " " << i << endl;
}
}
}
}
// 64 位输出请用 printf("%lld")