#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
struct Node{
string name,id;
bool ok;
int h,m,time;
int pos;
};
bool checkid(string s)
{
int len=s.size();
if(len!=18) return false;
for(int i=0;i<18;i++)
if(s[i]<'0' || s[i]>'9')
return false;
return true;
}
int main()
{
map<string,int> b;
map<string,int> st;
vector<Node> res;
int d,p;cin>>d>>p;
for(int i=0;i<d;i++)
{
int t,s;cin>>t>>s;
vector<Node> a(t);
for(int j=0;j<t;j++)
{
cin>>a[j].name>>a[j].id>>a[j].ok;
scanf("%d:%d",&a[j].h,&a[j].m);
a[j].time=a[j].h*60+a[j].m;
a[j].pos=j;
if(a[j].ok && checkid(a[j].id) && !st[a[j].id])
{
st[a[j].id]=1;
res.push_back(a[j]);
}
}
sort(a.begin(),a.end(),[&](Node A,Node B){
if(A.time!=B.time) return A.time<B.time;
return A.pos<B.pos;
});
int cnt=0;
for(int j=0;j<t&&cnt<s;j++)
if(checkid(a[j].id) &&(!b[a[j].id] || i+1-b[a[j].id]>p))
{
cout<<a[j].name<<" "<<a[j].id<<endl;
b[a[j].id]=i+1;
cnt++;
}
}
for(auto x:res)
cout<<x.name<<" "<<x.id<<endl;
return 0;
}