F - Intervalos en círculo

Languages: C, C++, Java, Pascal, Python, Tiger, JavaScript, Haskell, C#
Time & Memory limits: (details)

Se tiene un círculo con los enteros desde el $0$ hasta $m-1$, escritos en el sentido de las manecillas del reloj. Sobre dicho círculo se marcan $n$ intervalos y se quiere saber si es posible asignarle a cada intervalo uno de los enteros que cubre. Dos intervalos, sin embargo, no pueden tener asignado el mismo número entero.

Input

La primera línea de la entrada contiene un entero $T$ $(1 \leq T \leq 20)$ que indica la cantidad de casos de pruebas. La primera línea de cada uno de estos contiene dos enteros $m$ y $n$ $ (1\leq m,n \leq 10^{6})$ separados por un espacio que representan el tamaño del círculo y la cantidad de intervalos respectivamente. Le siguen $n$ líneas, cada una con dos enteros $0\leq a_{i},b_{i} < m$ separados por un espacio describiendo los intervalos.

Output

Por cada caso de prueba se debe escribir Si en caso de que sea posible asignarle a cada intervalo un número diferente. Si no existe tal asignación se debe imprimir No.

Sample test(s)

Input
2 3 3 0 1 1 2 2 0 2 3 0 0 0 1 1 1
Output
Si No