Polycarp remembered the 2020-th year, and he is happy with the arrival of the new 2021-th year. To remember such a wonderful moment, Polycarp wants to represent the number n as the sum of a certain number of 2020 and a certain number of 2021.

For example, if: 

  * n=4041, then the number n can be represented as the sum 2020 + 2021; 
  * n=4042, then the number n can be represented as the sum 2021 + 2021; 
  * n=8081, then the number n can be represented as the sum 2020 + 2020 + 2020 + 2021; 
  * n=8079, then the number n cannot be represented as the sum of the numbers 2020 and 2021. 



Help Polycarp to find out whether the number n can be represented as the sum of a certain number of numbers 2020 and a certain number of numbers 2021.

Input

The first line contains one integer t (1 ≤ t ≤ 10^4) — the number of test cases. Then t test cases follow.

Each test case contains one integer n (1 ≤ n ≤ 10^6) — the number that Polycarp wants to represent as the sum of the numbers 2020 and 2021.

Output

For each test case, output on a separate line: 

  * "YES" if the number n is representable as the sum of a certain number of 2020 and a certain number of 2021; 
  * "NO" otherwise. 



You can output "YES" and "NO" in any case (for example, the strings yEs, yes, Yes and YES will be recognized as positive).

Example

Input


5
1
4041
4042
8081
8079


Output


NO
YES
YES
YES
NO
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.StringTokenizer;
import static java.lang.Math.max;
import static java.lang.Math.min;
import static java.lang.Math.abs;
import static java.lang.Math.floor;
import static java.lang.Math.ceil;
import static java.lang.Math.pow;
import static java.lang.Math.log;
import static java.lang.Math.sqrt;

/* ------------ Theorems and Lemmas ------------ */

// Fermat's Little Theorem
// (1) ((a ** p) - a) % p = 0; if 'p' is prime
// (2) Further, if 'a % p != 0', then ((a ** (p - 1)) - 1) % p = 0

/* -------------- End of theorems -------------- */

public class B {

	// Digit DP
	private static int digit;
	private static int times;
	private static StringBuilder number;
	private static int[][][] digitDP;
	// End

	protected static final String[] FACTS = new String[] { "", "", "2", "3", "322", "5", "53", "7", "7222", "7332" };

	public static void main(String[] args) {
		FastReader reader = new FastReader();
		int t = 1;
		t = reader.nextInt();
		StringBuilder ans = new StringBuilder("");
		outer: while (t-- > 0) {
			int n = reader.nextInt();
			if (n < 2020)
				ans.append("NO\n");
			else {
				if (n % 2020 == 0 || n % 2021 == 0) {
					ans.append("YES\n");
					continue;
				}
				while (n > 0) {
					n -= 2020;
					if (n % 2021 == 0) {
						ans.append("YES\n");
						continue outer;
					}
				}
				ans.append("NO\n");
			}
		}
		reader.close();
		System.out.println(ans.toString().trim());
	}

	public static int ddp(int n) {
		number = new StringBuilder(String.valueOf(n));
		digitDP = new int[12][12][2];
		for (int[][] a : digitDP)
			for (int[] b : a)
				Arrays.fill(b, -1);
		return call(0, 0, 0);
	}

	// Digit DP
	public static int call(int pos, int cnt, int f) {
		if (cnt > times)
			return 0;
		if (pos == number.length())
			return cnt == times ? 1 : 0;
		if (digitDP[pos][cnt][f] != -1)
			return digitDP[pos][cnt][f];
		int res = 0;
		int lmt = f == 0 ? number.charAt(pos) - '0' : 9;
		for (int dgt = 0; dgt <= lmt; ++dgt)
			if ((dgt == digit ? 1 + cnt : cnt) <= times)
				res += call(1 + pos, dgt == digit ? 1 + cnt : cnt, f == 0 && dgt < lmt ? 1 : f);
		digitDP[pos][cnt][f] = res;
		return res;
	}

	// Binary Exponentiation
	public static int binpow(int a, int n, int mod) {
		// Iterative approach
		a %= mod;
		int result = 1;
		while (n > 0) {
			if ((n & 1) != 0)
				result = result * a % mod;
			a = a * a % mod;
			n >>= 1;
		}
		return result;

		// Recursive approach
		/*
		 * if (n == 0l) return 1l; long res = binpow(a, n / 2, mod); if ((n & 1l) != 0l)
		 * return ((res % mod) * (res % mod) * (a % mod)) % mod; else return ((res %
		 * mod) * (res % mod)) % mod;
		 */
	}

	// GCD
	public static int gcd(int a, int b) {
		while (b > 0) {
			a %= b;
			int t = a;
			a = b;
			b = t;
		}
		return a;
	}

	static class FastReader {
		BufferedReader br;
		StringTokenizer st;

		public FastReader() {
			br = new BufferedReader(new InputStreamReader(System.in));
		}

		String next() {
			while (st == null || !st.hasMoreElements()) {
				try {
					st = new StringTokenizer(br.readLine().trim());
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			return st.nextToken();
		}

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

		long nextLong() {
			return Long.parseLong(next());
		}

		float nextFloat() {
			return Float.parseFloat(next());
		}

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

		int[] readArray(int size) {
			int[] ar = new int[size];
			for (int i = 0; i < size; ++i)
				ar[i] = nextInt();
			return ar;
		}

		void close() {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}