Emuskald needs a fence around his farm, but he is too lazy to build it himself. So he purchased a fence-building robot.

He wants the fence to be a regular polygon. The robot builds the fence along a single path, but it can only make fence corners at a single angle a.

Will the robot be able to build the fence Emuskald wants? In other words, is there a regular polygon which angles are equal to a?

Input

The first line of input contains an integer t (0 < t < 180) — the number of tests. Each of the following t lines contains a single integer a (0 < a < 180) — the angle the robot can make corners at measured in degrees.

Output

For each test, output on a single line "YES" (without quotes), if the robot can build a fence Emuskald wants, and "NO" (without quotes), if it is impossible.

Examples

Input

3
30
60
90


Output

NO
YES
YES

Note

In the first test case, it is impossible to build the fence, since there is no regular polygon with angle <image>.

In the second test case, the fence is a regular triangle, and in the last test case — a square.
#include <bits/stdc++.h>
using namespace std;
template <class T>
T gcd(T a, T b) {
  return (b == 0) ? a : gcd(b, a % b);
}
template <class T>
T lcm(T a, T b) {
  return a * (b / gcd(a, b));
}
int DAY[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
string Rs[] = {"I",  "IV", "V",  "IX", "X",  "XL", "L",
               "XC", "C",  "CD", "D",  "CM", "M"};
int Ri[] = {1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000};
bool flag[360];
int main() {
  memset(flag, 0, sizeof(flag));
  for (int i = (3); i < (361); ++i) {
    if (360 % i == 0) {
      flag[180 - 360 / i] = 1;
    }
  }
  int N;
  while (cin >> N) {
    for (int i = (0); i < (N); ++i) {
      int a;
      cin >> a;
      cout << (flag[a] ? "YES" : "NO") << endl;
    }
  }
  return 0;
}
