{"trustable":false,"sections":[{"title":"","value":{"format":"HTML","content":"\u003cdiv class\u003d\"ptx\" lang\u003d\"en-US\"\u003e代学长的宝可梦牧场中只有三种属性的宝可梦,水、火、草。这三种属性互相克制。(水克火,火克草,草克水)\n\u003cbr\u003e现有N个宝可梦,以1-N编号,但是代学长并不知道每个宝可梦是什么属性。\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) 当前的话与前面的某些对的话冲突,就是错的;\n\u003cbr\u003e2) 当前的话中X或Y比N大,就是错的;\n\u003cbr\u003e3) 当前的话表示X克X,就是错的。\n\u003cbr\u003e孟学长每犯错一次就会收获一枚钉子,请根据给定的N(1 \u003c\u003d N \u003c\u003d 50,000)和K(0 \u003c\u003d K \u003c\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"}}]}