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.io.*;
import java.util.*;

public class Main {
	static Scanner sc = new Scanner(System.in);
	static PrintWriter out = new PrintWriter(System.out);
	static ArrayList<Integer> primes;
	static int[] isComposite;

	static void sieve(int N){
		isComposite = new int[N+1];					
		isComposite[0] = isComposite[1] = 1;		
		primes = new ArrayList<Integer>();
		for (int i = 2; i <= N; ++i) 					
			if (isComposite[i] == 0){
				primes.add(i);
				if(1l * i * i <= N)
					for (int j = i * i; j <= N; j += i)	
						isComposite[j] = 1;
			}   
	}

	static boolean isPrime(int N){
		if(N < isComposite.length)
			return isComposite[N] == 0;
		for(int p: primes)					
			if(N%p==0) return false;
		return true;
	}
	
	
	static int solve(int n) {
		if(n == 1) return 0;
		if(n % 2 == 1) return 1;
		
		int cur = 1;
		for(int i = 1; i <= 30; i++) {
			if(n % (1 << i) == 0) cur = i;
		}
		
		if(1 << cur == n) return 1 + solve(n - 1);
		if(cur == 1) {
			if(isPrime(n >> 1)) return 1 + solve(2);
			return 1 + solve(6);
		}
		return 1 + solve(1 << cur);
	}

	public static void main(String[] args) throws Exception {
		int t = sc.nextInt();
		sieve((int) 1e5);
		while(t-- > 0) {
			int x = solve(sc.nextInt());
			out.println(x % 2 == 0 ? "FastestFinger" : "Ashishgup");
		}
		out.close();
	}

}

class Scanner {
	StringTokenizer st;
	BufferedReader br;

	public Scanner(InputStream system) {
		br = new BufferedReader(new InputStreamReader(system));
	}

	public Scanner(String file) throws Exception {
		br = new BufferedReader(new FileReader(file));
	}

	public String next() throws IOException {
		while (st == null || !st.hasMoreTokens())
			st = new StringTokenizer(br.readLine());
		return st.nextToken();
	}

	public String nextLine() throws IOException {
		return br.readLine();
	}

	public int nextInt() throws IOException {
		return Integer.parseInt(next());
	}

	public double nextDouble() throws IOException {
		return Double.parseDouble(next());
	}

	public Long nextLong() throws IOException {
		return Long.parseLong(next());
	}
}