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
****************************************************************/