#include <bits/stdc++.h>
using namespace std;
template <class T>
bool umin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool umax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
vector<int> v;
int dp[20][5];
vector<int> x;
int d[] = {0, 4, 7};
long long pw[20], ans[9];
int rec(int x, int y) {
  if (x >= int(v.size())) return (y == 0);
  int& ret = dp[x][y];
  if (~ret) return ret;
  ret = 0;
  for (int a1 = 0; a1 < 3; a1++)
    for (int a2 = 0; a2 < 3; a2++)
      for (int a3 = 0; a3 < 3; a3++)
        for (int a4 = 0; a4 < 3; a4++)
          for (int a5 = 0; a5 < 3; a5++)
            for (int a6 = 0; a6 < 3; a6++) {
              int sum = d[a1] + d[a2] + d[a3] + d[a4] + d[a5] + d[a6] + y;
              if (sum % 10 != v[x]) continue;
              ret |= rec(x + 1, sum / 10);
            }
  return ret;
}
void wow(int x, int y) {
  if (x >= int(v.size())) return;
  for (int a1 = 0; a1 < 3; a1++)
    for (int a2 = 0; a2 < 3; a2++)
      for (int a3 = 0; a3 < 3; a3++)
        for (int a4 = 0; a4 < 3; a4++)
          for (int a5 = 0; a5 < 3; a5++)
            for (int a6 = 0; a6 < 3; a6++) {
              int sum = d[a1] + d[a2] + d[a3] + d[a4] + d[a5] + d[a6] + y;
              if (sum % 10 != v[x]) continue;
              if (rec(x + 1, sum / 10)) {
                ans[1] += pw[x] * d[a1];
                ans[2] += pw[x] * d[a2];
                ans[3] += pw[x] * d[a3];
                ans[4] += pw[x] * d[a4];
                ans[5] += pw[x] * d[a5];
                ans[6] += pw[x] * d[a6];
                wow(x + 1, sum / 10);
                return;
              }
            }
}
int main() {
  int t;
  scanf("%d", &t);
  pw[0] = 1;
  for (int i = 1; i <= 18; i++) pw[i] = pw[i - 1] * 10LL;
  while (t--) {
    memset(dp, -1, sizeof dp);
    memset(ans, 0, sizeof ans);
    int x;
    scanf("%d", &x);
    v.clear();
    while (x >= 1) {
      v.push_back(x % 10);
      x /= 10;
    }
    if (!rec(0, 0)) {
      puts("-1");
      continue;
    }
    wow(0, 0);
    for (int i = 1; i <= 6; i++) printf("%lld ", ans[i]);
    puts("");
  }
  return 0;
}
