{"trustable":false,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"cfk为了庆祝期末考结束,请了很多朋友去吃饭,为了省钱,cfk希望他需要准备的桌子数尽可能少,但是cfk的朋友和cfk一样,十分挑剔,他们只和自己的朋友坐在一桌。如果a和b是朋友,b和c是朋友,那么a和c也是朋友,a,b,c可以坐在一桌,同时d和e也是朋友,但由于d,e与a,b,c不是朋友,所以d,e需要坐在另一张桌子。问cfk最少需要多少桌子。"}},{"title":"Input","value":{"format":"HTML","content":"输入以一个整数T开始 (1\u003c\u003dT\u003c\u003d25) 表示测试数据组数. 接下来是T个测试数据。 每个测试数据以两个整数N和M开始(1\u003c\u003dN,M\u003c\u003d1000). N表示cfk邀请的朋友的数目,编号为1~N。接下来是M行,每行包含两个整数A和B(A!\u003dB),表示A和B互相是朋友。每两组测试数据间以一个空行相隔。 \n"}},{"title":"Output","value":{"format":"HTML","content":"对于每组测试数据,输出一个整数,代表最少需要摆放的桌数。\n请不要输出任何空格。"}},{"title":"Sample Input","value":{"format":"HTML","content":"\u003cpre\u003e2\n5 3\n1 2\n2 3\n4 5\n\n5 1\n2 5\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"HTML","content":"\u003cpre\u003e2\n4\u003c/pre\u003e"}}]}