Ashishgup and FastestFinger play a game. 

They start with a number n and play in turns. In each turn, a player can make any one of the following moves:

  * Divide n by any of its odd divisors greater than 1. 
  * Subtract 1 from n if n is greater than 1. 



Divisors of a number include the number itself.

The player who is unable to make a move loses the game.

Ashishgup moves first. Determine the winner of the game if both of them play optimally.

Input

The first line contains a single integer t (1 ≤ t ≤ 100) — the number of test cases. The description of the test cases follows.

The only line of each test case contains a single integer — n (1 ≤ n ≤ 10^9).

Output

For each test case, print "Ashishgup" if he wins, and "FastestFinger" otherwise (without quotes).

Example

Input


7
1
2
3
4
5
6
12


Output


FastestFinger
Ashishgup
Ashishgup
FastestFinger
Ashishgup
FastestFinger
Ashishgup

Note

In the first test case, n = 1, Ashishgup cannot make a move. He loses.

In the second test case, n = 2, Ashishgup subtracts 1 on the first move. Now n = 1, FastestFinger cannot make a move, so he loses.

In the third test case, n = 3, Ashishgup divides by 3 on the first move. Now n = 1, FastestFinger cannot make a move, so he loses.

In the last test case, n = 12, Ashishgup divides it by 3. Now n = 4, FastestFinger is forced to subtract 1, and Ashishgup gets 3, so he wins by dividing it by 3.
import java.util.*;
import java.io.*;

public class File {
    public static class FastScanner {
        BufferedReader br;
        StringTokenizer st;

        public FastScanner() {
            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());
        }
    }
	
    public static void main(String[] args) {
        FastScanner sc = new FastScanner();
        PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
		
		
		
		int T = sc.nextInt();
		for (int t = 1; t <= T; t++) {
			long n = sc.nextLong();
			
			if (n == 1) {
				out.println("FastestFinger");
			}
			// n is even
			else if (n % 2 == 0) {
				if (n == 2) {
					out.println("Ashishgup");
				}
				else {
					long copyN = n;
					long pow2 = 0;
					
					while (copyN % 2 == 0) {
						pow2++;
						copyN /= 2;
					}
					
					boolean hasOdd = copyN > 1;
					boolean composite = !isPrime(copyN);
					
					// If n has odd factors.
					// If the highest factor of 2 = 1, we lose.
					// If highest factor of 2 > 1, we win.
					if (hasOdd) {
						if (pow2 > 1) {
							out.println("Ashishgup");
						}
						else {
							if (composite) {
								out.println("Ashishgup");
							}
							else {
								out.println("FastestFinger");
							}
						}
					}
					// No odd factors. (Power of 2)
					// We lose. Because we can only -1.
					else {
						out.println("FastestFinger");
					}
				}
			}
			// n is odd. Victory because reduce it to 1 and pass over.
			// Odd number has no even factors.
			else {
				out.println("Ashishgup");
			}
		}
		
		
		
		out.close();
	}
	
	public static boolean isPrime(long num) {
		if (num < 2) return false;
		if (num == 2) return true;
		if (num % 2 == 0) return false;
		
		long root = (long)Math.sqrt(num);
		
		for (int i = 3; i <= root; i += 2) {
			if (num % i == 0) return false;
		}
		
		return true;
	}
}












	