#include <stdio.h>

typedef struct 
    {
        int bianhao;
        int fenshu;
    }po;

int compare_fenshu(const void*a,const void*b)
{
    po* po1 = *(po**)a;
    po* po2 = *(po**)b;
    if(po1->fenshu != po2->fenshu) 
    {
        return po2->fenshu - po1->fenshu; // 分数降序
    } 
    else 
    {
        return po1->bianhao - po2->bianhao; // 编号升序
    }
}


int main() 
{
    int n,line,count=0;
    scanf("%d",&n);
    scanf("%d",&line);
    int t=(1.5)*line;
    
    po* arr[n];

    for(int i=0;i<n;i++)
    {
        arr[i]=(po*)malloc(sizeof(po*));
        scanf("%d",&(arr[i]->bianhao));
        scanf("%d",&(arr[i]->fenshu));
    }

    qsort(arr, n, sizeof(po*), compare_fenshu);

    for(int i=0;i<n;i++)
    {
        if(arr[i]->fenshu>=arr[t-1]->fenshu)
        count++;
    }

    printf("%d",(arr[t-1]->fenshu));
    printf(" %d",count);
    printf("\n");
    for(int i=0;i<count;i++)
    {
        printf("%d",arr[i]->bianhao);
        printf(" %d",arr[i]->fenshu);
        printf("\n");

    }

    return 0;
}