#include<stdio.h>
#include<stdlib.h>
#define max 100000
typedef struct student
{
int num;
int de;
int cai;
}stu;
int compare(const void *a,const void *b);
void printtype(stu s[],int j);
void main()
{
int N,L,H;
int i,i1,i2,i3,i4;
stu s,type01[max],type02[max],type03[max],type04[max];
i1=i2=i3=i4=0;
scanf("%d %d %d",&N,&L,&H);
for(i=0;i<N;i++){
scanf("%d %d %d",&s.num,&s.de,&s.cai);
if(s.de>=L&&s.cai>=L){
if(s.de>=H&&s.cai>=H)
type01[i1++]=s;
else if(s.de>=H)
type02[i2++]=s;
else if(s.de>=s.cai)
type03[i3++]=s;
else
type04[i4++]=s;
}
}
printf("%d\n",i1+i2+i3+i4);
qsort(type01,i1,sizeof(stu),compare);
qsort(type02,i2,sizeof(stu),compare);
qsort(type03,i3,sizeof(stu),compare);
qsort(type04,i4,sizeof(stu),compare);
printtype(type01,i1);
printtype(type02,i2);
printtype(type03,i3);
printtype(type04,i4);
}
int compare(const void *a,const void *b)
{
stu *p1,*p2;
int sum1,sum2;
p1=(stu *)a;
p2=(stu *)b;
sum1=p1->de+p1->cai;
sum2=p2->de+p2->cai;
if(sum1!=sum2)
return sum2-sum1;
else if(p1->de!=p2->de)
return p2->de-p1->de;
else return p1->num-p2->num;
}
void printtype(stu s[],int j)
{
int i;
for(i=0;i<j;i++){
printf("%d %d %d\n",s[i].num,s[i].de,s[i].cai);
}
}