#include <bits/stdc++.h>
using namespace std;
bool flag, v[21][501];
long long n, a[9], tmp, pw[21];
int i, j, k, tests, b[21];
void work(int x, int d) {
  int i, j, k, t;
  if (v[x][d]) return;
  v[x][d] = 1;
  if (b[0] < x) {
    if (d) return;
    flag = 1;
    for (i = 1; i <= 6; i++) cout << a[i] << " ";
    cout << endl;
    return;
  }
  for (i = 0; i <= 6; i++)
    for (j = 0; j <= 6 - i; j++) {
      t = d + i * 4 + j * 7;
      if (t % 10 != b[x]) continue;
      for (k = 1; k <= i; k++) a[k] += 4LL * pw[x - 1];
      for (k = i + 1; k <= i + j; k++) a[k] += 7LL * pw[x - 1];
      work(x + 1, t / 10);
      if (flag) return;
      for (k = 1; k <= i; k++) a[k] -= 4LL * pw[x - 1];
      for (k = i + 1; k <= i + j; k++) a[k] -= 7LL * pw[x - 1];
    }
}
int main() {
  cin >> tests;
  for (i = 1, pw[0] = 1; i <= 18; i++) pw[i] = pw[i - 1] * 10LL;
  while (tests--) {
    cin >> n;
    memset(v, 0, sizeof(v));
    memset(b, 0, sizeof(b));
    memset(a, 0, sizeof(a));
    for (tmp = n, b[0] = 0; tmp; tmp /= 10) b[++b[0]] = tmp % 10;
    flag = 0;
    work(1, 0);
    if (!flag) cout << -1 << endl;
  }
  return 0;
}
