#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 1e5 + 5;
char _a[MAXN], _b[MAXN], _c[MAXN];
int a[MAXN], b[MAXN], c[MAXN];
int sa, sb, sc;
int x, y, z;
int apb[MAXN], sapb;
int cma[MAXN], scma;
int cmb[MAXN], scmb;
int x1, y1, z1;
int x2, y2, z2;
int x3, y3, z3;
int tmp[MAXN];
void calcapb() {
memset(apb, 0, sizeof(apb));
int b1 = 0;
for(int i = 0; i < sa; ++i) {
if(a[i] != 0) {
b1 = i;
break;
}
}
int b2 = 0;
for(int i = 0; i < sb; ++i) {
if(b[i] != 0) {
b2 = i;
break;
}
}
sapb = max(sa - b1, sb - b2);
int cnt = 0, f = 0;
for(int i = 0; i < sapb; ++i) {
apb[i] += a[i + b1] + b[i + b2];
if(apb[i] >= 10) {
++apb[i + 1];
apb[i] -= 10;
}
if(apb[i] == 0 && f == 0)
cnt++;
else if(apb[i] != 0)
f = 1;
}
if(apb[sapb] != 0)
++sapb;
if(b2 > b1) {
x1 = b2 - b1;
y1 = 0;
z1 = cnt;
} else {
y1 = b1 - b2;
x1 = 0;
z1 = cnt;
}
}
void calccma() {
memset(cma, 0, sizeof(cma));
int b1 = 0;
for(int i = 0; i < sc; ++i) {
if(c[i] != 0) {
b1 = i;
break;
}
}
int b2 = 0;
for(int i = 0; i < sa; ++i) {
if(a[i] != 0) {
b2 = i;
break;
}
}
scma = max(sc - b1, sa - b2);
int cnt = 0, f = 0;
for(int i = 0; i < scma; ++i) {
cma[i] += c[i + b1] - a[i + b2];
if(cma[i] < 0) {
--cma[i + 1];
cma[i] += 10;
}
if(cma[i] == 0 && f == 0)
cnt++;
else if(cma[i] != 0)
f = 1;
}
if(cma[scma] != 0)
++scma;
if(b2 > b1) {
z2 = b2 - b1;
x2 = 0;
y2 = cnt;
} else {
x2 = b1 - b2;
z2 = 0;
y2 = cnt;
}
}
void calccmb() {
memset(cmb, 0, sizeof(cmb));
int b1 = 0;
for(int i = 0; i < sc; ++i) {
if(c[i] != 0) {
b1 = i;
break;
}
}
int b2 = 0;
for(int i = 0; i < sb; ++i) {
if(b[i] != 0) {
b2 = i;
break;
}
}
scmb = max(sc - b1, sb - b2);
int cnt = 0, f = 0;
for(int i = 0; i < scmb; ++i) {
cmb[i] += c[i + b1] - b[i + b2];
if(cmb[i] < 0) {
--cmb[i + 1];
cmb[i] += 10;
}
if(cmb[i] == 0 && f == 0)
cnt++;
else if(cmb[i] != 0)
f = 1;
}
if(cmb[scmb] != 0)
++scmb;
if(b2 > b1) {
z3 = b2 - b1;
y3 = 0;
x3 = cnt;
} else {
y3 = b1 - b2;
z3 = 0;
x3 = cnt;
}
}
bool solveapb() {
int b1 = 0;
for(int i = 0; i < sapb; ++i) {
if(apb[i] != 0) {
b1 = i;
break;
}
}
int b2 = 0;
for(int i = 0; i < sc; ++i) {
if(c[i] != 0) {
b2 = i;
break;
}
}
if(sapb - b1 != sc - b2)
return false;
for(int i = 0; i < sapb - b1; ++i) {
if(apb[i + b1] != c[i + b2])
return false;
}
if(b2 > b1) {
x1 += b2 - b1;
y1 += b2 - b1;
z1 += 0;
} else {
z1 += b2 - b1;
}
return true;
}
bool solvecma() {
int b1 = 0;
for(int i = 0; i < scma; ++i) {
if(cma[i] != 0) {
b1 = i;
break;
}
}
int b2 = 0;
for(int i = 0; i < sb; ++i) {
if(b[i] != 0) {
b2 = i;
break;
}
}
if(scma - b1 != sb - b2)
return false;
for(int i = 0; i < scma - b1; ++i) {
if(cma[i + b1] != b[i + b2])
return false;
}
if(b2 > b1) {
x2 += b2 - b1;
z2 += b2 - b1;
} else {
y2 += b1 - b2;
}
return true;
}
bool solvecmb() {
int b1 = 0;
for(int i = 0; i < scmb; ++i) {
if(cmb[i] != 0) {
b1 = i;
break;
}
}
puts("C-B=");
for(int i = scmb - 1; i >= 0; --i) {
printf("%d", cmb[i]);
}
puts("");
int b2 = 0;
for(int i = 0; i < sa; ++i) {
if(a[i] != 0) {
b2 = i;
break;
}
}
if(scmb - b1 != sa - b2)
return false;
for(int i = 0; i < scmb - b1; ++i) {
if(cmb[i + b1] != a[i + b2])
return false;
}
cout << "b2=" << b2 << " b1=" << b1 << endl;
if(b2 > b1) {
y3 += b2 - b1;
z3 += b2 - b1;
} else {
x3 += b1 - b2;
}
return true;
}
int main() {
#ifdef Yinku
freopen("Yinku.in", "r", stdin);
#endif // Yinku
int T;
while(~scanf("%d", &T)) {
while(T--) {
scanf("%s%s%s", _a, _b, _c);
// printf("A=
%s
", _a);
// printf("B=
%s
", _b);
// printf("C=
%s
", _c);
sa = strlen(_a), sb = strlen(_b), sc = strlen(_c);
reverse(_a, _a + sa);
reverse(_b, _b + sb);
reverse(_c, _c + sc);
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
memset(c, 0, sizeof(c));
for(int i = 0; i < sa; ++i)
a[i] = _a[i] - '0';
for(int i = 0; i < sb; ++i)
b[i] = _b[i] - '0';
for(int i = 0; i < sc; ++i)
c[i] = _c[i] - '0';
// puts("A2=");
// for(int i = 0; i < sa; ++i) {
// printf("%d", a[i]);
// }
// puts("");
calcapb();
// puts("A+B=");
// cout << "len=" << sapb << endl;
// for(int i = sapb - 1; i >= 0; --i) {
// printf("%d", apb[i]);
// }
// puts("");
if(solveapb()) {
printf("1:%d %d %d
", x1, y1, z1);
continue;
}
calccma();
/*for(int i=scma-1;i>=0;--i){
printf("%d",cma[i]);
}
puts("");*/
if(cma[scma] >= 0 && solvecma()) {
printf("2:%d %d %d
", x2, y2, z2);
continue;
}
calccmb();
/*for(int i=scma-1;i>=0;--i){
printf("%d",cma[i]);
}
puts("");*/
if(cmb[scmb] >= 0 && solvecmb()) {
printf("3:%d %d %d
", x3, y3, z3);
continue;
}
puts("-1");
continue;
}
}
return 0;
}