Üçlülər \mathbf{a} = (x_a, y_a, z_a) və \mathbf{b} = (x_b, y_b, z_b) üzərində qismən sıralama belə müəyyənləşdirilir:
Əgər x_a < x_b, y_a < y_b və z_a < z_b isə \mathbf{a} \prec \mathbf{b}.
Verilən üçlü dəstində ən uzun ciddi artan ardıcıllığın uzunluğunu tapın: \mathbf{a}_1 \prec \mathbf{a}_2 \prec \dotsb \prec \mathbf{a}_k.

Giriş bir neçə datasetdən ibarətdir. Hər dataset üçlü dəstini aşağıdakı formatda təsvir edir:
- m~n~A~B - x_1~y_1~z_1 - x_2~y_2~z_2 - - x_m~y_m~z_m
Birinci sətrdə dörd tam ədəd var: , , , . Bütün x_i, y_i, z_i (1 \le i \le m) qeyri-mənfi tam ədədlərdir.
Hər datasetdə ümumilikdə m + n üçlü olur. İlk üçlü \mathbf{p}_1-dən \mathbf{p}_m-ə qədər açıq şəkildə verilir (\mathbf{p}_i = (x_i, y_i, z_i)). Qalan üçlü isə və parametrlərindən istifadə etməklə aşağıdakı kimi yaradılır:
int a = A, b = B, C = ~(1<<31), M = (1<<16)-1;
int r() {
a = 36969 * (a & M) + (a >> 16);
b = 18000 * (b & M) + (b >> 16);
return (C & ((a << 16) + b)) % 1000000;
}funksiyasını dəfə çağırın ki, aşağıdakı ardıcıllıqla ədədlər alınsın:
Aşağıdakıları qəbul edin:
Giriş dörd sıfırdan ibarət sətrlə bitir.
Bütün datasetlər üzrə m+n cəmi 2 \times 10^6-dan çox olmur.
Hər dataset üçün verilmiş dəstdə ən uzun ciddi artan ardıcıllığın uzunluğunu çıxarın — yəni, \mathbf{p}_{i_1} \prec \mathbf{p}_{i_2} \prec \dotsb \prec \mathbf{p}_{i_k} maksimal üçün cavabı verin.
Nümunə 1