#include <bits/stdc++.h>
using namespace std;
long long a[8];
int n, f[22][22], pos[22][22], key[22][22], x, bo[120], zu[120][2], T;
char c[120];
void pret() {
  for (int i = 0; i <= 6; ++i)
    for (int j = 0; i + j <= 6; ++j) {
      bo[i * 4 + j * 7] = 1;
      zu[i * 4 + j * 7][0] = i;
      zu[i * 4 + j * 7][1] = j;
    }
}
int main() {
  pret();
  scanf("%d", &T);
  while (T-- > 0) {
    scanf("%s", c + 1);
    n = strlen(c + 1);
    memset(f, 0, sizeof(f));
    f[n][0] = 1;
    for (int i = n; i >= 1; --i) {
      x = c[i] - 48;
      for (int j = 0; j <= 9; ++j)
        if (f[i][j]) {
          for (int k = x - j; k <= 42; k += 10)
            if (k >= 0 && bo[k]) {
              f[i - 1][(k + j) / 10] = 1;
              pos[i - 1][(k + j) / 10] = j;
              key[i - 1][(k + j) / 10] = k;
            }
        }
    }
    if (!f[0][0]) {
      printf("-1\n");
    } else {
      memset(a, 0, sizeof(a));
      int j = 0;
      for (int i = 0; i < n; ++i) {
        x = key[i][j];
        for (int k = 1; k <= zu[x][0]; ++k) a[k] = a[k] * 10 + 4;
        for (int k = 1; k <= zu[x][1]; ++k)
          a[k + zu[x][0]] = a[k + zu[x][0]] * 10 + 7;
        for (int k = zu[x][0] + zu[x][1] + 1; k <= 6; ++k) a[k] *= 10;
        j = pos[i][j];
      }
      for (int i = 1; i <= 6; ++i) printf("%I64d ", a[i]);
      puts("");
    }
  }
}
