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.*;
  public class Codeforces {
  
  
  	// CHECK CONSTRAINTS ALWAYS EDGE CASE MISSED 
  	
  static int mod = 1000000007;	
  static boolean a[];
  
  static ArrayList<Integer> al; 
  
  
  
  public static void main(String[] args) {
  
  Scanner sc=  new Scanner(System.in);
  
    while(sc.hasNext()) {
  
  	 int t = sc.nextInt();
  	 a = new boolean[100001];
  	 al =  new ArrayList<>();	
  	 sieve();
   
  	 while(t-->0) {
    long n = sc.nextLong();
  long a =0 , b = 0, c = 0;  
  if(n%2 == 0) {
  	a = n/2;
  	b = a-1;
  	c = 1;
  	
  }
  else {
    c = 1;
    n = n-1;
  for(int i = 0 ; i<al.size() ; i++) {
  	long diff = n - al.get(i);
  	
  	if(diff %al.get(i) != 0) {
  		a = al.get(i);
  		b = diff;
   break;
  	}
  }
  }
  
  System.out.println(a +" "+b +" "+c);
  
  
  
  
    
    
  	
  		 
  	 
  	
       }
  
   
   }
  
  
  
  
  
  
  
  	
  
  
  
   
  
  }
   
  static void sieve() {
  	Arrays.fill(a, false);
  	
  	for(int i = 2; i*i<=100000 ; i++) {
  		if(a[i] == false) {
  			for(int j = i*i ; j<=100000 ; j+=i) {
  				a[j] = true;
  			}
  		}
  		
  	}
  	
  	for(int i = 2 ; i<=100000 ; i++) {
  		if(!a[i]) {
  			al.add(i);
  		}
  	}
  	
  	
  }
   
   }
  
  
  
  
          
  
  
  
  
  		
  
  
          
  
  
  
  
  		