#280. 卡图难题

卡图难题

题目描述

N\red {N}个变量X0XN1 \red {X_0\sim X _{N−1}~} ,每个变量的可能取值为0\red {0}1\red {1}

给定M\red {M}个算式,每个算式形如 XaopXb=c\red {X_aopX _b =c},其中 a,b\red {a,b} 是变量编号,c\red {c} 是数字0\red {0}1\red {1}op\red {op}andorxor\red {and,or,xor} 三个位运算之一。

求是否存在对每个变量的合法赋值,使所有算式都成立。

输入格式

第一行包含两个整数N\red {N}M\red {M}

接下来M\red {M}行,每行包含三个整数a b c\red {a ~b ~c},以及一个位运算(AND,OR,XOR\red {AND,OR,XOR}中的一个)。

输出格式

输出结果,如果存在,输出“YES”,否则输出“NO”

样例

输入样例

4 4
0 1 1 AND
1 2 1 OR
3 2 0 AND
3 0 0 XOR

输出样例

YES

提示

1N1000\red {1≤N≤1000},

1M106\red {1≤M≤10^6}