#include <bits/stdc++.h>
namespace FastIO {
const int SIZE = 1 << 16;
char buf[SIZE], obuf[SIZE], s[60];
int bi = SIZE, bn = SIZE, opt;
int read(char* s) {
  while (bn) {
    for (; bi < bn && buf[bi] <= ' '; bi++)
      ;
    if (bi < bn) break;
    bn = fread(buf, 1, SIZE, stdin);
    bi = 0;
  }
  int sn = 0;
  while (bn) {
    for (; bi < bn && buf[bi] > ' '; bi++) s[sn++] = buf[bi];
    if (bi < bn) break;
    bn = fread(buf, 1, SIZE, stdin);
    bi = 0;
  }
  s[sn] = 0;
  return sn;
}
template <typename T>
bool read(T& x) {
  int n = read(s), bf;
  if (!n) return 0;
  int i = 0;
  if (s[i] == '-')
    bf = -1, i++;
  else
    bf = 1;
  for (x = 0; i < n; i++) x = x * 10 + s[i] - '0';
  if (bf < 0) x = -x;
  return 1;
}
};  // namespace FastIO
using namespace FastIO;
using namespace std;
const int INF = 0x3f3f3f3f;
const long long mod = 1e9 + 7;
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
long long qpow(long long a, long long b, long long mod) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = (ans * a) % mod;
    b >>= 1;
    a = (a * a) % mod;
  }
  return ans;
}
long long qmul(long long a, long long b, long long mod) {
  long long ans = 0;
  while (b > 0) {
    if (b & 1) ans = (ans + a) % mod;
    b >>= 1;
    a = (a + a) % mod;
  }
  return ans;
}
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
long long getInv(long long a, long long mod) { return qpow(a, mod - 2, mod); }
long long MOD(long long x, long long mod) { return ((x % mod) + mod) % mod; }
int f;
void check(int n) {
  int i, j, k;
  for (i = 0;; i++) {
    for (j = 0;; j++) {
      for (k = 0;; k++) {
        if (n == 3 * i + 5 * j + 7 * k) {
          cout << i << ' ' << j << ' ' << k << ' ' << '\n';
          f = 1;
          return;
        } else if (n < 3 * i + 5 * j + 7 * k) {
          break;
        }
      }
      k = 0;
      if (3 * i + 5 * j + 7 * k > n) break;
    }
    j = 0, k = 0;
    if (3 * i + 5 * j + 7 * k > n) break;
  }
}
int main() {
  int T;
FastIO:;
  read(T);
  int n;
  while (T--) {
    FastIO::read(n);
    f = 0;
    check(n);
    if (!f) cout << -1 << '\n';
  }
  return 0;
}
