{"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。\n\u003cbr\u003e 题目输入数据较大,建议使用较快的读取方式\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":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\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\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e3\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}