description: Given a positive integer n. Find three distinct positive integers a, b, c such that a + b + c = n and \operatorname{gcd}(a, b) = c, where \operatorname{gcd}(x, y) denotes the [greatest common divisor (GCD)](https://en.wikipedia.org/wiki/Greatest_common_divisor) of integers x and y.
  
  Input
  
  The input consists of multiple test cases. The first line contains a single integer t (1 ≤ t ≤ 10^5) — the number of test cases. Description of the test cases follows.
  
  The first and only line of each test case contains a single integer n (10 ≤ n ≤ 10^9).
  
  Output
  
  For each test case, output three distinct positive integers a, b, c satisfying the requirements. If there are multiple solutions, you can print any. We can show that an answer always exists.
  
  Example
  
  Input
  
  
  6
  18
  63
  73
  91
  438
  122690412
  
  
  Output
  
  
  6 9 3
  21 39 3
  29 43 1
  49 35 7
  146 219 73
  28622 122661788 2
  
  Note
  
  In the first test case, 6 + 9 + 3 = 18 and \operatorname{gcd}(6, 9) = 3.
  
  In the second test case, 21 + 39 + 3 = 63 and \operatorname{gcd}(21, 39) = 3.
  
  In the third test case, 29 + 43 + 1 = 73 and \operatorname{gcd}(29, 43) = 1.
solution: import java.util.*;
  import java.io.*;
  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.util.Scanner;
  import java.util.StringTokenizer;
  
  public class Test{
  
          static FastReader scan;
  
          static void solve(){
              int n=scan.nextInt();
              n--;
              int a=2,b=n-2;
              while(a<b){
                  if(gcd(a,b)==1){
                      System.out.println(a+" "+b+" "+1);
                      break;
                  }
                  a++;
                  b--;
              }
              
          }
  
          public static void main (String[] args) throws java.lang.Exception{
              scan=new FastReader();
              int t=scan.nextInt();
              while(t-->0){
                  solve();
              }
          }
  
          static class FastReader {
              BufferedReader br;
              StringTokenizer st;
  
              public FastReader()
              {
                  br = new BufferedReader(
                      new InputStreamReader(System.in));
              }
  
              String next()
              {
                  while (st == null || !st.hasMoreElements()) {
                      try {
                          st = new StringTokenizer(br.readLine());
                      }
                      catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
                  return st.nextToken();
              }
  
              int nextInt() { return Integer.parseInt(next()); }
  
              long nextLong() { return Long.parseLong(next()); }
  
              double nextDouble() { return Double.parseDouble(next()); }
  
              String nextLine()
              {
                  String str = "";
                  try {
                      str = br.readLine();
                  }
                  catch (IOException e) {
                      e.printStackTrace();
                  }
                  return str;
              }
          }
  
          static class Pair implements Comparable<Pair>{
              int e;
              int wt;
              Pair(int x,int y){
                  this.e=x;
                  this.wt=y;
              }
              @Override
              public int compareTo(Pair x){
                  return (int)(x.wt-this.wt);
              }
          }        
  
          static void printLong(long []arr){
              for(long x:arr)System.out.print(x+" ");
          }
  
          static void printInt(int []arr){
              for(int x:arr)System.out.print(x+" ");
          }
  
          static void scanInt(int []arr){
              for(int i=0;i<arr.length;i++){
                  arr[i]=scan.nextInt();
              }
          }
  
          static void scanLong(long []arr){
              for(int i=0;i<arr.length;i++){
                  arr[i]=scan.nextLong();
              }
          }
  
          static long gcd(long a, long b){
              if (b == 0)
                  return a;
              
              return gcd(b, a % b);
          }   
  
          static long power(long x, long y, long mod){
              long res = 1; 
          
              x = x % mod; 
           
              if (x == 0)
                return 0; 
           
              while (y > 0){              
                  if ((y & 1) != 0)
                  res = (res * x) % mod;
                
                  y = y >> 1; 
                  x = (x * x) % mod;
              }
                  return res;
          }
  
          static long add(long a,long b,long mod){
              a = a % mod; 
              b = b % mod; 
              return (((a + b) % mod) + mod) % mod;
          }
  
          static long sub(long a, long b,long mod){
              a = a % mod; 
              b = b % mod; 
              return (((a - b) % mod) + mod) % mod;
          }
  
          static long mul(long a, long b,long mod){
              a = a % mod; 
              b = b % mod; 
              return (((a * b) % mod) + mod) % mod;
          }
          
  
          static long mminvprime(long a, long b,long mod) {
              return power(a, b - 2,mod);
          }
  }
  