{"trustable":true,"sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003e Suppose there are \u003cvar\u003eN\u003c/var\u003e people in ZJU, whose ages are unknown. We have some messages about them. The \u003cvar\u003ei\u003c/var\u003e-th message shows that the age of person \u003cvar\u003es\u003csub\u003ei\u003c/sub\u003e\u003c/var\u003e is not smaller than the age of person \u003cvar\u003et\u003csub\u003ei\u003c/sub\u003e\u003c/var\u003e. Now we need to divide all these \u003cvar\u003eN\u003c/var\u003e people into several groups. One\u0027s age shouldn\u0027t be compared with each other in the same group, directly or indirectly. And everyone should be assigned to one and only one group. The task is to calculate the minimum number of groups that meet the requirement. \u003c/p\u003e \n\u003cp\u003e \u003c/p\u003e\n\u003ch4\u003eInput\u003c/h4\u003e \n\u003cp\u003e There are multiple test cases. For each test case: The first line contains two integers \u003cvar\u003eN\u003c/var\u003e(1≤ \u003cvar\u003eN\u003c/var\u003e≤ 100000), \u003cvar\u003eM\u003c/var\u003e(1≤ \u003cvar\u003eM\u003c/var\u003e≤ 300000), \u003cvar\u003eN\u003c/var\u003e is the number of people, and \u003cvar\u003eM\u003c/var\u003e is is the number of messages. Then followed by \u003cvar\u003eM\u003c/var\u003e lines, each line contain two integers s\u003csub\u003ei\u003c/sub\u003e and t\u003csub\u003ei\u003c/sub\u003e. There is a blank line between every two cases. Process to the end of input.\u003c/p\u003e \n\u003ch4\u003eOutput\u003c/h4\u003e \n\u003cp\u003e For each the case, print the minimum number of groups that meet the requirement one line. \u003c/p\u003e \n\u003ch4\u003eSample Input\u003c/h4\u003e \n\u003cpre\u003e4 4\n1 2\n1 3\n2 4\n3 4\n\u003c/pre\u003e \n\u003ch4\u003eSample Output\u003c/h4\u003e \n\u003cpre\u003e3\n\u003c/pre\u003e \n\u003ch4\u003eHint\u003c/h4\u003e \n\u003cp\u003e set1\u003d {1}, set2\u003d {2, 3}, set3\u003d {4} \u003c/p\u003e"}}]}