逆=辶+屰
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

来自数院的小楠喜欢研究数学,他给定了一个数字 n, 然后提出了 q 个问题,每个问题给出两个整数 kr, 现在他想知道,在他的每个问题中,他给出的数字 n 是否满足不少于 k不同的正整数 c_1, c_2,c_3,\dots,c_k 能够使得 n\ mod\ c_i=r, i = 1,2,3,\dots,k.

其中 mod 代表求余,例如:5\ mod\ 2=1, 8\ mod\ 2=0.

输入描述:

第一行输入两个整数 n(1 \leq n \leq 1 \times 10^6),q(1 \leq q \leq 1 \times 10^4), 分别代表小楠给出的这个数字 n 和提出的问题数量 q.

接下来 q 行,每行输入两个整数 k(1 \leq k \leq 1 \times 10^6),r(0 \leq r < n), 代表 n 是否满足有不少于 k 个不同的正整数 c_1,c_2,c_3,\dots,c_k 能够使得 n\ mod\ c_i=r,i=1,2,3,\dots,k.

输出描述:

输出共 q 行,如果小楠给出的这个数字 n 能够满足他的第 q 个问题,那么输出"YES",否则输出"NO"。(输出不含双引号,且必须严格大写)
示例1

输入

复制
9 2
2 0
4 1

输出

复制
YES
NO

说明

19 共九个数中:

r=0 时,由于 9\ mod\ 1 = 0,9\ mod\ 9 = 0,9\ mod\ 3 = 0, 由于找到三个不同的正整数满足 r=0, 数量上满足第一个问题的条件,所以输出YES。

r=1 时,由于 9\ mod\ 2 = 1,9\ mod\ 4 = 1,9\ mod\ 8 = 1, 由于找到三个不同的正整数满足 r=1, 但数量上不满足第二个问题的条件,所以输出NO。