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.lang.*;
  import java.io.*;
  
  /* Name of the class has to be "Main" only if the class is public. */
  public class Main
  {
  	public static void main (String[] args) throws java.lang.Exception
  	{
  		// your code goes here
  		Scanner sc = new Scanner(System.in);
  		int test = sc.nextInt();
  		boolean prime[] = sieveOfEratosthenes(100000);
  		while(test-- > 0){
  		    int n = sc.nextInt();
  		    if(n % 2 == 0){
  		        int c = 1;
  		        int a = (n - 2) / 2;
  		        int b = a + 1;
  		        System.out.println(a + " " + b + " " + c);
  		    }else{
  		        int c = 1;
  		        int a = 0,b = 0;
  		        for(int i=3;i<=Math.min(n,2000);i+=2){
  		            if(prime[i]){
  		                if((n - c - i) % i != 0){
  		                    a = i;
  		                    b = n - c - i;
  		                    break;
  		                }
  		            }
  		        }
  		        System.out.println(a + " " + b + " " + c);
  		    }
  		}
  	}
  	
  	static boolean[] sieveOfEratosthenes(int n)
      {
          // Create a boolean array
          // "prime[0..n]" and
          // initialize all entries
          // it as true. A value in
          // prime[i] will finally be
          // false if i is Not a
          // prime, else true.
          boolean prime[] = new boolean[n + 1];
          for (int i = 0; i <= n; i++)
              prime[i] = true;
   
          for (int p = 2; p * p <= n; p++)
          {
              // If prime[p] is not changed, then it is a
              // prime
              if (prime[p] == true)
              {
                  // Update all multiples of p
                  for (int i = p * p; i <= n; i += p)
                      prime[i] = false;
              }
          }
   
          // Print all prime numbers
          return prime;
      }
   
  
  }
  