```
import java.util.*;
class Rextester{
static boolean odd(int n){
if(n%2==0)
return false;
return true;
}
static boolean solve(int n, int k)
{
if (n >= k*k) {
return true;
}
return false;
}
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
int test=in.nextInt();
while(test-- >0){
int n, k;
n=in.nextInt();
k=in.nextInt();
if(odd(n) && odd(k)){
if(solve(n, k)){
System.out.println("YES");
continue;
}
}
if(!odd(n) && !odd(k)){
if(solve(n, k)){
System.out.println("YES");
continue;
}
}
System.out.println("NO");
}
}
}
```

I cannot understand which test case if failing. Can someone please help me.