학생들이 너무 시끄럽게 떠들자, 학원장은 반을 나누기로 했다.
학생들은 친한 친구와 떨어지는 것을 싫어해 강하게 반발했다. 이를 달래기 위해, 서로 다른 반에 있어도 인터넷 메신저로 대화할 수 있게 허락했다.
두 학생이 메신저로 대화하려면 두 사람이 서로의 메신저 아이디를 알고 있어야 한다. 모든 학생 쌍이 서로의 아이디를 알고 있는 것은 아니다.
학원장은 가능한 한 많은 반을 만들고 싶다. 서로 다른 반에 속한 두 학생은 반드시 서로의 메신저 아이디를 알고 있어야 한다.
어떤 학생 쌍이 서로의 메신저 아이디를 알고 있는지 주어질 때, 만들 수 있는 반의 최대 개수와 그때의 각 반 인원수를 구하라.
첫째 줄에 학생 수 n과 서로의 메신저 아이디를 알고 있는 학생 쌍의 수 m이 공백으로 구분되어 주어진다. (2 ≤ n ≤ 100,000, 1 ≤ m ≤ 2,000,000)
다음 m개의 줄에는 서로의 메신저 아이디를 알고 있는 두 학생 번호 a, b가 주어진다. 학생 번호는 1 이상 n 이하의 정수이다.
첫째 줄에 만들 수 있는 반의 최대 개수를 출력한다.
둘째 줄에는 그때 각 반의 인원수를 오름차순으로 출력한다.
공개 테스트에서는 4번 학생을 혼자 한 반으로, 5번과 7번 학생을 한 반으로, 나머지 네 명을 한 반으로 두면 된다.