#include <stdio.h>
static long long gcd(long long a, long long b) {
if (a < 0) a = -a;
if (b < 0) b = -b;
while (b) {
long long t = a % b;
a = b;
b = t;
}
return a;
}
int main(void) {
int n;
long long h;
if (scanf("%d %lld", &n, &h) != 2) {
return 0;
}
for (int idx = 0; idx < n; ++idx) {
long long x, y, z;
if (scanf("%lld %lld %lld", &x, &y, &z) != 3) {
return 0;
}
// Reflect target across z = h: (x, y, 2*h - z)
long long rx = x;
long long ry = y;
long long rz = 2 * h - z;
// Reduce to primitive vector by gcd
long long g = gcd(rx, gcd(ry, rz));
if(g == 0) g = 1;
rx /= g;
ry /= g;
rz /= g;
// Output
printf("%lld %lld %lld\n", rx, ry, rz);
}
return 0;
}
#牛客AI配图神器#