회사 “Ūbr”에는 프로그래머 $N$명이 근무한다. 각 프로그래머에게는 $1$부터 $N$까지의 정수 코드가 하나씩 부여되며, 모든 코드는 서로 다르다.
회사는 $M$개의 프로젝트를 진행한다. 각 프로젝트는 두 프로그래머가 공동으로 담당하며, 그중 코드가 더 작은 사람이 다른 사람의 상사가 된다. 어떤 두 프로그래머도 함께 담당하는 프로젝트가 둘 이상 있을 수는 없다.

그림 1. 이 예시에서는 $N = 6$이고 다섯 개의 프로젝트가 진행 중이다. 2번, 3번, 6번 프로그래머는 각각 상사가 한 명이고, 4번 프로그래머는 상사가 두 명이다.
“Ūbr”는 상사가 둘 이상인 프로그래머일수록 업무 만족도가 낮다는 것을 알게 되었다. 그래서 모든 직원이 상사를 최대 한 명만 두도록 조직을 개편하려고 한다. 개편은 기존 프로젝트 일부를 중단하고 새 프로젝트를 시작하는 방식으로 이루어진다. 위 예시는 프로젝트 3–4를 없애고 새 프로젝트 3–5를 만드는 방식으로 개편할 수 있지만, 이것이 유일한 방법은 아니다.
어떤 프로그래머도 상사를 둘 이상 두지 않도록 개편하는 방법을 찾아라. 그러한 개편 중에서 회사는 개편 후 진행하는 프로젝트 수를 최대한 많게 하고 싶어 하며, 그다음으로는 중단하는 기존 프로젝트 수를 최대한 적게 하고 싶어 한다.
첫 번째 줄에 프로그래머 수 $N$과 개편 전 진행 중이던 프로젝트 수 $M$이 주어진다. 이어지는 $M$개의 줄에는 각 프로젝트가 하나씩 주어지며, 각 줄에는 그 프로젝트를 담당하는 두 프로그래머의 코드를 나타내는 서로 다른 두 정수($1$ 이상 $N$ 이하)가 주어진다.
한 줄에 세 정수 $K$, $P$, $S$를 공백으로 구분하여 출력한다.
세 값은 $K = M - P + S$를 만족해야 한다. 먼저 $K$를 최대로 하고, 그러한 방법들 중에서 $P$를 최소로 하는 개편을 선택한다. 이 두 조건을 만족하면 $K$, $P$, $S$의 값은 유일하게 결정되므로, 그 세 수를 정확히 출력한다.