#include<bits/stdc++.h>
using namespace std;
struct ICPC
{
string s0,s1,s2,s3;
int id,r;
}a[10010];
bool cmp(ICPC x,ICPC y){
return x.r==y.r?x.id<y.id:x.r<y.r;
}
int main()
{
set<string>st;
queue<ICPC>qe;
int n,m,t,k,ans=0;cin>>n>>m>>t>>k;
for(int i=0;i<n;i++)
cin>>a[i].s0>>a[i].s1>>a[i].s2>>a[i].s3>>a[i].id>>a[i].r;
sort(a,a+n,cmp);
for(int i=0;i<n;i++)
{
if(ans==k)break;
int be=st.size();
st.insert(a[i].s1);st.insert(a[i].s2);st.insert(a[i].s3);
if(st.size()-be!=3)continue;
qe.push(a[i]);ans++;
}
cout<<ans<<'\n';
while(!qe.empty()){
ICPC aa=qe.front();qe.pop();
cout<<aa.s0<<' '<<aa.s1<<' '<<aa.s2<<' '<<aa.s3<<'\n';
}
}