#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配图神器#