B. Экскурсия OIE
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Гектор находится на экскурсии со Испанской олимпиадой по информатике, посещая Ла-Корунью, но он отчаянно хочет ускользнуть, чтобы встретиться со своими друзьями Густаво, Эсомером и Дани. Для этого ему нужно пройти по пути, охраняемому $$$n$$$ волонтёрами, стоящими в ряд и пронумерованными от $$$1$$$ до $$$n$$$; $$$i$$$-й волонтёр наблюдает за позицией $$$i$$$.

У каждого волонтёра есть внутренний таймер. Изначально (в момент времени $$$0$$$) таймер $$$i$$$-го волонтёра имеет значение $$$a_i$$$. Каждую секунду все таймеры увеличиваются на $$$1$$$. Когда таймер достигает $$$m$$$, он сбрасывается в $$$0$$$. Точнее, в момент времени $$$x$$$ таймер $$$i$$$-го волонтёра показывает значение $$$(a_i + x) \pmod m$$$.

$$$i$$$-й волонтёр наблюдает за позицией $$$i$$$ тогда и только тогда, когда его таймер равен $$$0$$$. В любое другое время он отвлечён и не заметит Гектора.

Гектор начинает в позиции $$$0$$$, слева от всех волонтёров. Чтобы сбежать, он должен добраться до позиции $$$n+1$$$. В конце каждой секунды Гектор может либо остаться на своей текущей позиции, либо сдвинуться на одну позицию влево, либо на одну позицию вправо. Заметьте, что Гектор не может уйти левее позиции $$$0$$$.

Гектор будет пойман тогда и только тогда, когда в начале некоторой секунды он находится в позиции $$$i$$$ ($$$1 \le i \le n$$$), а таймер $$$i$$$-го волонтёра равен $$$0$$$.

Определите, существует ли стратегия, при которой Гектор сможет пройти мимо всех волонтёров и сбежать, не будучи пойманным.

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Каждый набор входных данных состоит из двух строк:

  • Первая строка содержит два целых числа $$$n$$$ и $$$m$$$ ($$$2 \le n \le 2 \cdot 10^5$$$, $$$2 \le m \le 10^9$$$) — количество волонтёров и длину цикла таймеров.
  • Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$0 \le a_i \lt m$$$), где $$$a_i$$$ обозначает начальное значение таймера $$$i$$$-го волонтёра в момент $$$t=0$$$.

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.

Выходные данные

Для каждого набора выведите строку, содержащую либо «YES», либо «NO», которая показывает, может ли Гектор сбежать. Вы можете выводить ответ в любом регистре (верхнем или нижнем). Например, строки «yEs», «yes», «Yes», и «YES» будут распознаны как положительные ответы.

Пример
Входные данные
6
8 5
0 4 0 2 1 0 0 3
6 2
1 0 1 0 1 0
6 2
1 1 1 1 0 1
2 10
6 9
2 2
0 1
5 1000000000
1 2 3 4 999999999
Выходные данные
YES
YES
NO
YES
YES
YES
Примечание
  • Случай 1: Гектор может двигаться вправо каждую секунду, не останавливаясь и не двигаясь влево, и сбежать, потому что не существует такого $$$i$$$, что $$$(a_i + i) \pmod m = 0$$$.

  • Случай 2: Один из возможных способов — подождать одну секунду в начальной позиции, а затем двигаться вправо каждую секунду без дальнейших ожиданий или движений влево.