硬币
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

 组数据。

有  个硬币,初始都是正面朝上,每次操作你可以选择其中的恰好  个,并将它们翻转,你可以执行任意次操作,问能否将所有硬币都变成反面朝上?

输入描述:

每个测试点都包含多个测试用例。第一行包含一个整数 T(1≤T≤10^{6}),表示用例的个数

接下来 T 行,每行两个整数n,m(1≤m≤n≤10^{9}),分别表示硬币的个数和每次能翻转的硬币个数

输出描述:

对于每个测试用例,
如果能将所有硬币翻转成反面向上,输出YES
否则,输出NO
示例1

输入

复制
3
11 4
12 3
5 3

输出

复制
NO
YES
YES

说明

对于第三组测试用例:

5 枚硬币每次可以恰好翻转 3 枚。

第一次翻转可以变成 2 枚正面朝上,3 枚反面朝上。

第二次翻转可以变成 3 枚正面朝上,2 枚反面朝上。

第三次翻转可以变成 5 枚反面朝上。

故答案为YES

1\leq T\leq 10^6

1\leq m\leq n\leq 10^9