{"trustable":false,"sections":[{"title":"","value":{"format":"HTML","content":"\u003cdiv class\u003d\"ptx\" lang\u003d\"en-US\"\u003e牛子爷家中有三类宠物J,X,T,这三类宠物互相克制。J克制X, X克制T,T克制J。\n\u003cbr\u003e现有N个宠物,以1-N编号。每个宠物都是J,X,T中的一种,但是我们并不知道它到底是哪一种。\n\u003cbr\u003e有人用两种说法对这N个宠物所构成的克制关系进行描述:\n\u003cbr\u003e第一种说法是\"1 X Y\",表示X和Y是同类。\n\u003cbr\u003e第二种说法是\"2 X Y\",表示X克制Y。\n\u003cbr\u003e此人对N个宠物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。\n\u003cbr\u003e1)\t当前的话与前面的某些真的话冲突,就是假话;\n\u003cbr\u003e2)\t当前的话中X或Y比N大,就是假话;\n\u003cbr\u003e3)\t当前的话表示X克制X,就是假话。\n\u003cbr\u003e你的任务是根据给定的N(1 \u0026lt;\u003d N \u0026lt;\u003d 50,000)和K句话(0 \u0026lt;\u003d K \u0026lt;\u003d 100,000),输出假话的总数。\n\u003cbr\u003e\u003c/div\u003e"}},{"title":"Input","value":{"format":"HTML","content":"\u003cdiv class\u003d\"ptx\" lang\u003d\"en-US\"\u003e第一行是两个整数N和K,以一个空格分隔。\n\u003cbr\u003e以下K行每行是三个正整数 D,X,Y,两数之间用一个空格隔开,其中D表示说法的种类。\n\u003cbr\u003e 若D\u003d1,则表示X和Y是同类。\n\u003cbr\u003e 若D\u003d2,则表示X克制Y。\u003c/div\u003e"}},{"title":"Output","value":{"format":"HTML","content":"\u003cdiv class\u003d\"ptx\" lang\u003d\"en-US\"\u003e只有一个整数,表示假话的数目。\u003c/div\u003e"}},{"title":"Sample Input","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003e100 7\n1 101 1 \n2 1 2\n2 2 3 \n2 3 3 \n1 1 3 \n2 3 1 \n1 5 5\n\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003e3\u003c/pre\u003e"}}]}