#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define ZZ register long long
using namespace std;
inline long long gcd(long long a, long long b) {
if (b == 0) return a;
return gcd(b, a % b);
}
inline long long exgcd(long long a, long long b, long long &x, long long &y) {
if (b == 0) {
x = 1; y = 0;
return a;
}
long long r = exgcd(b, a % b, x, y);
long long t = x;
x = y; y = t - a / b * y;
return r;
}
inline long long read() {
ZZ x = 0, f = 1;
char ch = getchar();
while (!isdigit(ch)) {
if (ch == '-') f = -1;
ch = getchar();
}
while (isdigit(ch)) {
x = x * 10 + ch - '0';
ch = getchar();
}
return x * f;
}
int n;
inline void ZSX() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
long long a, b, c, x, p;
a = read(); b = read(); c = read();
long long m = gcd(a, b);
a /= m; b /= m;
if (c % m != 0) printf("-1\n");
else {
c /= m;
long long d = exgcd(a, b, x, p);
x *= c; p *= c;
long long ans1, ans2, ans3, ans4;
if (x < 0) {
long long s = (-x) / b;
if (x + s * b <= 0) x += (s + 1) * b;
else x += s * b;
ans1 = x;
ans4 = (c - ans1 * a) / b;
} else {
long long s = x / b;
if (x - s * b <= 0) x -= (s - 1) * b;
else x -= s * b;
ans1 = x;
ans4 = (c - ans1 * a) / b;
}
if (p < 0) {
long long s = (-p) / a;
if (p + s * a <= 0) p += (s + 1) * a;
else p += s * a;
ans2 = p;
ans3 = (c - ans2 * b) / a;
} else {
long long s = p / a;
if (p - s * a <= 0) p -= (s - 1) * a;
else p -= s * a;
ans2 = p;
ans3 = (c - ans2 * b) / a;
}
if (ans3 < 0 || ans4 < 0) printf("%lld %lld\n", ans1, ans2);
else
printf("%lld %lld %lld %lld %lld\n", (ans3 - ans1) / b + 1, ans1, ans2, ans3, ans4);
}
}
}
int main() {
ZSX();
return 0;
}
@⚡小林子⚡
@陆麟瑞
@zhangyuhan
@Catalan1906
@Rainy7
@暴力出奇迹
@LHQing
@WYXkk
@zimujunqwq