int main(int argc, char const* argv[])
{
int n;
while (~scanf("%d",&n)) {
int A,B,C;
while (n--) {
scanf("%d %d %d",&A,&B,&C);
bool b;
for(int x = -B;x < B;x++){
int yz;
if(x != 0 && B%x == 0){
yz = B/abs(x);
b = false;
for(int y = x+1;y < yz;y++){
int z1,z2,z3;
if(y != 0 && yz%y == 0){
//printf("x = %d,y = %d\n",x,y);
z1 = A-x-y;
z2 = (B/x)/y;
z3 = C-x*x-y*y;
if(z1 == z2 && z2*z2 == z3){
printf("%d %d %d\n",x,y,z1);
b = true;
break;
}
}
}
}
if(b)
break;
}
if(!b)
printf("No solution.\n");
}
}
return 0;
}