You are given two integers n and k. Your task is to find if n can be represented as a sum of k distinct positive odd (not divisible by 2) integers or not.

You have to answer t independent test cases.

Input

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

The next t lines describe test cases. The only line of the test case contains two integers n and k (1 ≤ n, k ≤ 10^7).

Output

For each test case, print the answer — "YES" (without quotes) if n can be represented as a sum of k distinct positive odd (not divisible by 2) integers and "NO" otherwise.

Example

Input


6
3 1
4 2
10 3
10 2
16 4
16 5


Output


YES
YES
NO
YES
YES
NO

Note

In the first test case, you can represent 3 as 3.

In the second test case, the only way to represent 4 is 1+3.

In the third test case, you cannot represent 10 as the sum of three distinct positive odd integers.

In the fourth test case, you can represent 10 as 3+7, for example.

In the fifth test case, you can represent 16 as 1+3+5+7.

In the sixth test case, you cannot represent 16 as the sum of five distinct positive odd integers.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        while(n-->0){
            int t,k;
            t=sc.nextInt();
            k=sc.nextInt();
            System.out.println(solve(t,k));
        }
    }

    private static String solve(int t, int k) {
        //如果t是偶数，k为奇数
        if((t&1)==0&&(k&1)==1)
            return "NO";
        //如果t是奇数，k是偶数
        if((t&1)==1&&(k&1)==0)
            return "NO";
        //找出i
        int i=(int)Math.ceil(t/k)-k;
        if(i<0)
            return "NO";
        //计算差了多少个2；
        int need=((i+k)*k-t)/2;
        if(need==0)
            return "YES";
        //计算可以减少的2的最大值
        int maxTwo=(i+(k<<1)-1)/2;
        if(need>maxTwo)
            return "NO";
        return "YES";

    }
}
