#include <bits/stdc++.h>
int f[20][4], sw;
int go(long long n, int K) {
  int w;
  if (n == 0) {
    sw = 1;
    long long d[6], j = 1;
    memset(d, 0, sizeof(d));
    for (int i = 0; i < K; i++, j *= 10) {
      w = 0;
      while (f[i][0]) d[w++] += 4 * j, f[i][0]--;
      while (f[i][1]) d[w++] += 7 * j, f[i][1]--;
    }
    for (int i = 0; i < 6; i++) printf("%I64d ", d[i]);
    printf("\n");
    return 1;
  }
  long long k = n % 10;
  for (int i = 0; i <= 6; i++) {
    for (int j = 0; i + j <= 6; j++) {
      long long w = i * 4 + j * 7;
      if (w % 10 == k && n >= w) {
        f[K][0] = i;
        f[K][1] = j;
        f[K][2] = 6 - (i + j);
        go((n - w) / 10, K + 1);
        if (sw) return 1;
      }
    }
  }
  return 0;
}
int main() {
  int runs;
  for (scanf("%d", &runs); runs--;) {
    long long n;
    sw = 0;
    scanf("%I64d", &n);
    if (!go(n, 0)) printf("-1\n");
  }
  return 0;
}
