import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int times=in.nextInt();
int minLine=in.nextInt();
int maxLine=in.nextInt();
List<Student> students=new ArrayList<Student>();
in.nextLine();
for(int i=0;i<times;i++) {
Student stu=new Student();
stu.setStudyNumber(in.nextInt());
stu.setMoralGrade(in.nextInt());
stu.setTalentGrade(in.nextInt());
students.add(stu);
}
List<Student> students1=new ArrayList<Student>();
List<Student> students2=new ArrayList<Student>();
List<Student> students3=new ArrayList<Student>();
List<Student> students4=new ArrayList<Student>();
// 获得四类学生的数目
for(int i=0;i<students.size();i++) {
if(students.get(i).getMoralGrade()>=minLine&&students.get(i).getTalentGrade()>=minLine) {
if(students.get(i).getMoralGrade()>=maxLine&&students.get(i).getTalentGrade()>=maxLine) {
students1.add(students.get(i));
}
else if(students.get(i).getMoralGrade()>=maxLine&&students.get(i).getTalentGrade()<maxLine) {
students2.add(students.get(i));
}else if(students.get(i).getMoralGrade()<maxLine&&students.get(i).getTalentGrade()<maxLine&&students.get(i).getMoralGrade()>students.get(i).getTalentGrade()) {
students3.add(students.get(i));
}else {
students4.add(students.get(i));
}
}
}
int sum=students1.size()+students2.size()+students3.size()+students4.size();
System.out.print(sum+"\n");
sortArray(students1);
sortArray(students2);
sortArray(students3);
sortArray(students4);
in.close();
}
// 对数组按德才总分排序并输出
public static void sortArray(List<Student> students) {
Collections.sort(students);
for(int i=0;i<students.size();i++) {
System.out.println(students.get(i).toString());
}
}
}
class Student implements Comparable<Student>{
private int studyNumber;
private int moralGrade;
private int talentGrade;
public int getStudyNumber() {
return studyNumber;
}
public void setStudyNumber(int studyNumber) {
this.studyNumber = studyNumber;
}
public int getMoralGrade() {
return moralGrade;
}
public void setMoralGrade(int moralGrade) {
this.moralGrade = moralGrade;
}
public int getTalentGrade() {
return talentGrade;
}
public void setTalentGrade(int talentGrade) {
this.talentGrade = talentGrade;
}
@Override
public int compareTo(Student stu) {
if(this.moralGrade+this.talentGrade!=stu.moralGrade+stu.talentGrade) {
return (stu.moralGrade+stu.talentGrade-this.moralGrade-this.talentGrade);
}else{
if(this.moralGrade!=stu.moralGrade) {
return stu.moralGrade-this.moralGrade;
}else {
return this.studyNumber-stu.studyNumber;
}
}
}
public String toString() {
String a=String.valueOf(studyNumber);
String b=String.valueOf(moralGrade);
String c=String.valueOf(talentGrade);
return a+" "+b+" "+c;
}
}