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.
#include <bits/stdc++.h>
const size_t max_number = 1000000;
std::vector<int> prime;
bool is_not_prime[max_number];
void sieve() {
  for (int i = 2; i < max_number; i++) {
    if (!is_not_prime[i]) {
      if (i > 2) {
        prime.push_back(i);
      }
      for (int j = 2; i * j < max_number; j++) {
        is_not_prime[i * j] = true;
      }
    }
  }
}
void run() {
  int num;
  std::cin >> num;
  if (num == 1) {
    std::cout << "FastestFinger" << std::endl;
  } else if (num == 2) {
    std::cout << "Ashishgup" << std::endl;
  } else if (num & 1) {
    std::cout << "Ashishgup" << std::endl;
  } else {
    int odd_prime_count = 0, two_count = 0;
    while (num % 2 == 0) {
      two_count++;
      num >>= 1;
    }
    for (const auto& p : prime) {
      while (num % p == 0) {
        odd_prime_count++;
        num /= p;
      }
      if (num < p) {
        break;
      }
    }
    if (num > 1 && num & 1 == 1) {
      odd_prime_count++;
    }
    if ((odd_prime_count == 1 && two_count > 1) || (odd_prime_count >= 2)) {
      std::cout << "Ashishgup" << std::endl;
    } else {
      std::cout << "FastestFinger" << std::endl;
    }
  }
}
int main() {
  int test_count;
  std::cin >> test_count;
  sieve();
  for (int i = 0; i < test_count; i++) {
    run();
  }
  return 0;
}
