가젯 공장
시간 제한3초메모리 제한256 MB
정렬된 m개의 공장이 n종류 부품 중 하나씩 생산할 때, 각 부품에 대한 최근접 공장까지 거리의 제곱합을 최소화하는 모든 좌표 t를 정확한 분수 형태로 구하는 문제입니다.
문제
스미스 씨는 대단히 부유한 가젯 애호가입니다. 원하는 가젯이 아직 생산되지 않았다는 이유만으로 살 수 없다는 사실을 깨달은 그는, 직접 가젯 공장을 세우기로 결심했습니다.
이 공장은 실리콘 로드라 불리는 거리에 세워집니다. 이 거리에는 가젯을 만드는 데 필요한 첨단 부품을 생산하는 공장들이 늘어서 있습니다. 실리콘 로드는 완전히 직선이고 공장들은 도로에 바짝 붙어 있으므로, 도로를 수직선으로, 각 공장을 그 위의 한 점으로 볼 수 있습니다. 이러한 부품 생산 공장을 공장이라고 부릅니다.
가젯 하나를 만들려면 서로 다른 가지 부품이 필요하고, 도로변에는 이 부품들을 생산하는 공장이 개 있으며, 각 공장은 정확히 한 종류의 부품을 생산합니다. 가젯 공장을 좌표 에 세운다고 할 때, 그 비용은 필요한 가지 부품 각각에 대해 그 부품을 생산하는 가장 가까운 공장까지의 거리의 제곱을 모두 더한 값입니다.
이 비용이 최소가 되는 모든 좌표 를 구하세요.

입력
첫째 줄에 두 정수 과 이 주어집니다 (; ).
이어지는 개의 줄에는 각각 두 정수 와 가 주어집니다. 는 번째 공장의 좌표이고, 는 그 공장이 생산하는 부품의 번호입니다 (; ; ).
필요한 각 부품은 적어도 하나의 공장에서 생산됩니다.
출력
를 에서 각 부품을 생산하는 가장 가까운 공장까지의 거리의 제곱을 가지 부품에 대해 모두 더한 값이라고 하겠습니다. 가 최솟값을 갖는 모든 점의 좌표는 분모가 을 나누는 유리수입니다.
첫째 줄에 가 최소가 되는 점의 개수 를 출력합니다. 이어서 그 개의 점을 오름차순으로 한 줄에 하나씩 출력하되, 각 점을 기약분수 p/q () 형태로 정확히 출력하고, 인 경우에는 정수 p로 출력합니다.