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.
1
669278611
 10
10
52
91
23
44
99
28
54
99
51

334639303 334639307 1
 4 5 1
25 26 1
43 47 1
9 13 1
21 22 1
47 51 1
13 14 1
26 27 1
47 51 1
23 27 1

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
/**
 *
 * @author Imtiaz Adar
 */
public class x1617B {
    public static int gcd(int a, int b){
        return (b == 0) ? a : gcd(b, a % b);
    }
    public static void main(String[] args) {
        InputStreamReader inputReader = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(inputReader);
        StringTokenizer token = new StringTokenizer("");
        InputReader scan = new InputReader(reader, token);
        int N = scan.nextInt();
        while(N > 0){
            int num = scan.nextInt();
            for(int target = 2;;target++){
                if(gcd(num - 1 - target, target) != 1){
                    continue;
                }
                else if(gcd(num - 1 - target, target) == 1){
                    System.out.println((num - 1 - target) + " " + target + " " + 1);
                    if(num - 1 - target <= 1){
                        throw null;
                    }
                    break;
                }
            }
            N--;
        }
    }
    static class InputReader{
        private BufferedReader reader;
        private StringTokenizer token;
        InputReader(BufferedReader reader, StringTokenizer token){
            this.reader = reader;
            this.token = token;
        }
        String next(){
            while(!token.hasMoreTokens()) {
                try {
                    token = new StringTokenizer(reader.readLine());
                }
                catch(IOException e) {
                    e.printStackTrace();
                }
            }
            return token.nextToken();
        }
        String nextLine() {
            String str = "";
            try{
                str = reader.readLine();
            }
            catch(IOException e) {
                e.printStackTrace();
            }
            return str;
        }
        int nextInt() {
            return Integer.parseInt(next());
        }
        long nextLong() {
            return Long.parseLong(next());
        }
        double nextDouble() {
            return Double.parseDouble(next());
        }
        int[] readIntArray(int size) {
            int[] arr = new int[size];
            for(int i = 0; i < arr.length; i++) {
                arr[i] = nextInt();
            }
            return arr;
        }
    }
}
