var
i,j,k,l,m,n:longint;
a,b:array[1..5001]of longint;
procedure qsort(x,y:longint);
var
x0,y0,mid,mid1,aa:longint;
begin
x0:=x;y0:=y;mid:=a[(x0+y0)div 2];mid1:=b[(X0+y0)div 2];
repeat
while (a[x0]>mid)or((a[x0]=mid)and(b[x0]<mid1)) do x0:=x0+1;
while (a[y0]<mid)or((a[y0]=mid)and(b[y0]>mid1)) do y0:=y0-1;
if x0<=y0 then
begin
aa:=a[x0];
a[x0]:=a[y0];
a[y0]:=aa;
aa:=b[x0];
b[x0]:=b[y0];
b[y0]:=aa;
x0:=x0+1;
y0:=y0-1;
end;
until x0>y0;
if x<y0 then qsort(x,y0);
if x0<y then qsort(x0,y);
end;
begin
readln(n,m);
for i:=1 to n do readln(b[i],a[i]);
qsort(1,n);
m:=a[trunc(m*1.5)];
for i:=1 to n+1 do
if a[i]<m then break;
i:=i-1;
writeln(m,' ',i);
for j:=1 to i do
writeln(b[j],' ',a[j]);
end.
/**************************************************************
Problem: 2285
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/