#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
const int N = 1e5+10;
struct person{
string id;
int competence, ethnicity;
int total;
bool operator<(const person &a) const{
if(total==a.total){
if(ethnicity==a.ethnicity){
return id<a.id;
}
return ethnicity>a.ethnicity;
}
return total>a.total;
}
};
vector<person> saints, masters, foolish, villains;
int main(){
int n,l,h;
cin>>n>>l>>h;
for(int i = 0;i<n;++i){
string id;
int c,e;
cin>>id>>e>>c;
if(c>=l && e>=l){
if(c>=h && e>=h){
// 圣人
saints.push_back({id,c,e,c+e});
}else if(e>=h){
// 君子
masters.push_back({id,c,e,c+e});
}else if(c<h && e>=c){
// 愚人
foolish.push_back({id,c,e,c+e});
}else{
villains.push_back({id,c,e,c+e});
}
}
}
sort(saints.begin(),saints.end());
sort(masters.begin(),masters.end());
sort(foolish.begin(),foolish.end());
sort(villains.begin(),villains.end());
cout<<saints.size()+masters.size()+foolish.size()+villains.size()<<endl;
for(auto x:saints) cout<<x.id<<' '<<x.ethnicity<<' '<<x.competence<<endl;
for(auto x:masters) cout<<x.id<<' '<<x.ethnicity<<' '<<x.competence<<endl;
for(auto x:foolish) cout<<x.id<<' '<<x.ethnicity<<' '<<x.competence<<endl;
for(auto x:villains) cout<<x.id<<' '<<x.ethnicity<<' '<<x.competence<<endl;
return 0;
}