import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.TreeSet;
public class Main {
private static class Person implements Comparable<Person>{
int id;
int dscore;
int cscore;
int sum;
public Person(int id, int dscore, int cscore) {
this.id = id;
this.dscore = dscore;
this.cscore = cscore;
this.sum = this.dscore + this.cscore;
}
@Override
public String toString() {
return id + " " + dscore + " " + cscore;
}
@Override
public int compareTo(Person o) {
if (this.sum == o.sum){
if (this.dscore == o.dscore){
return this.id - o.id;
}
return o.dscore - this.dscore;
}
return o.sum - this.sum;
}
}
public static void main(String[] args) {
List<TreeSet<Person>> persons = new ArrayList<>();
for (int i = 0; i < 4; i++) {
persons.add(new TreeSet<>());
}
int num = 0;
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int L = sc.nextInt();
int H = sc.nextInt();
for (int i = 0; i < N; i++) {
int id = sc.nextInt();
int dscore = sc.nextInt();
int cscore = sc.nextInt();
if (dscore < L || cscore < L){
continue;
}
Person p = new Person(id, dscore, cscore);
if (p.dscore >= H && p.cscore >= H) {
persons.get(0).add(p);
} else if (p.dscore >= H && p.cscore < H) {
persons.get(1).add(p);
} else if (p.dscore >= p.cscore) {
persons.get(2).add(p);
} else {
persons.get(3).add(p);
}
num++;
}
System.out.println(num);
for (int i = 0; i < persons.size(); i++) {
TreeSet<Person> sortList = persons.get(i);
for (Person person : sortList) {
System.out.println(person.toString());
}
}
}
}