2-SAT
$N$개의 불 변수 $x_1$, $x_2$, $\ldots$, $x_N$이 있다.
각 변수에는 true 또는 false를 할당할 수 있다.
$M$개의 조건이 주어진다. 하나의 조건은 두 정수 $a$, $b$로 주어지며, 두 리터럴 중 하나 이상이 true여야 한다.
양의 정수 $k$는 $x_k$를 의미하고, 음의 정수 $-k$는 $\lnot x_k$를 의미한다.
모든 조건을 만족하도록 각 변수의 값을 정할 수 있는지 판별하라.
입력
첫 번째 줄에 변수의 개수 $N$과 조건의 개수 $M$이 주어진다. $(1 \leq N \leq 10\,000, 0 \leq M \leq 100\,000)$
두 번째 줄부터 $M$개의 줄에 걸쳐 하나의 조건을 나타내는 두 정수 $a$, $b$가 주어진다. $(-N \leq a,b \leq N, a \neq 0, b \neq 0)$
이는 $a$와 $b$ 중 하나 이상이 true여야 한다는 뜻이다.
출력
모든 조건을 만족하도록 변수의 값을 정할 수 있다면 Yes를, 그렇지 않다면 No를 출력한다.
예제 입력 1
3 4 1 2 -1 3 -2 3 -3 1
예제 출력 1
Yes
예제 입력 2
1 2 1 1 -1 -1
예제 출력 2
No