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.math.BigInteger;
  import java.nio.charset.StandardCharsets;
  	
  public class Main {
  		private static FS sc = new FS();
  		
  		private static class FS {
  			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  			StringTokenizer st = new StringTokenizer("");
  			String next() {
  				while (!st.hasMoreTokens())
  					try {
  						st=new StringTokenizer(br.readLine());				               
  		            } catch (IOException e) {}
  				return st.nextToken();
  			}
  			
  			int nextInt() {
  				return Integer.parseInt(next());
  			}
  			long nextLong() {
  				return Long.parseLong(next());
  			}
  		}
  		
  		private static class extra {
  			
  			static int[] intArr(int size) {
  				int[] a = new int[size];
  				for(int i = 0; i < size; i++) a[i] = sc.nextInt();
  				return a;
  			}
  			
  			static long[] longArr(int size) {
  				Scanner scc = new Scanner(System.in);
  				long[] a = new long[size];
  				for(int i = 0; i < size; i++) a[i] = sc.nextLong();
  				return a;
  			}
  			
  			static long intSum(int[] a) {
  				long sum = 0; 
  				for(int i = 0; i < a.length; i++) {
  					sum += a[i];
  				}
  				return sum;
  			}
  			
  			static long longSum(long[] a) {
  				long sum = 0; 
  				for(int i = 0; i < a.length; i++) {
  					sum += a[i];
  				}
  				return sum;
  			}
  			
  			static LinkedList[] graphD(int vertices, int edges) {
  				LinkedList<Integer>[] temp = new LinkedList[vertices+1];
  				for(int i = 0; i <= vertices; i++) temp[i] = new LinkedList<>();
  				for(int i = 0; i < edges; i++) {
  					int x = sc.nextInt();
  					int y = sc.nextInt();
  					temp[x].add(y);
  				}
  				return temp;
  			}
  			
  			static LinkedList[] graphUD(int vertices, int edges) {
  				LinkedList<Integer>[] temp = new LinkedList[vertices+1];
  				for(int i = 0; i <= vertices; i++) temp[i] = new LinkedList<>();
  				for(int i = 0; i < edges; i++) {
  					int x = sc.nextInt();
  					int y = sc.nextInt();
  					temp[x].add(y);
  					temp[y].add(x);
  				}
  				return temp;
  			}
  			
  			static void printG(LinkedList[] temp) {
  				for(LinkedList<Integer> aa:temp) System.out.println(aa);
  			}
  			
  			static long cal(long val, long pow, long mod) {
  				if(pow == 0) return 1;
  				long res = cal(val, pow/2, mod);
  				
  				long ret = (res*res)%mod;
  				if(pow%2 == 0) return ret;
  				return (val*ret)%mod;
  			}
  			
  			static long gcd(long a, long b) { return b == 0 ? a:gcd(b, a%b); }
  			
  		}
  		
  		static int mod = (int) 1e9 + 7;
  		
  		static LinkedList<Integer>[] temp, idx;
  		static long inf = (long) Long.MAX_VALUE;
  //		static long inf = Long.MAX_VALUE;
  //		static int max;
  		
  		public static void main(String[] args) { 
  			int t = sc.nextInt();
  //			int t = 1;
  			StringBuilder ret = new StringBuilder();
  			while(t-- > 0) {
  				int n = sc.nextInt();
  				if(n%2 == 0) {
  					ret.append((n - 3) + " " + 2 + " " + 1 + "\n");
  				} else {
  					int half = (n-1)/2;
  					if(extra.gcd(half+1, half-1) == 1) ret.append((half+1) + " " + (half-1) + " " + 1 + "\n");
  					else ret.append((half+2) + " " + (half-2) + " " + 1 + "\n");
  				}
  			}
  			System.out.println(ret);
  		}
  
  	}
  
  	
  	
  
  
  	
  	
  	
  