베라와 개집 배정

M = X*N마리의 개에게 주거지와 보조 주거지를 배정해, 어떤 집을 하나 닫아도 열린 집마다 잠자는 개가 X+1마리를 넘지 않도록 만든다.

보통7조합론그리디수학구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

베라에게 11번부터 NN번까지 번호가 붙은 개집 NN개와 11번부터 MM번까지 번호가 붙은 개 MM마리가 있다. 여기서 M=X×NM = X \times N이다. 개집 ii는 정확히 XX마리 Pi,1,,Pi,XP_{i,1}, \dots, P_{i,X}의 주 거처이면서 또 다른 XX마리 Si,1,,Si,XS_{i,1}, \dots, S_{i,X}의 보조 거처여야 한다. 개마다 주 거처가 하나, 보조 거처가 하나 있고 둘은 서로 다른 개집이다.

밤마다 청소 때문에 개집이 최대 하나 닫힌다. 개는 자기 주 거처가 열려 있으면 그곳에서 자고, 닫혀 있으면 보조 거처에서 잔다. 어떤 개집도 닫히지 않는 밤을 포함해 가능한 모든 밤에, 열려 있는 개집마다 자는 개가 X+1X + 1마리를 넘지 않아야 한다.

조건을 모두 만족하는 배정을 하나 찾거나, 그런 배정이 없음을 판정하라.

입력

첫째 줄에 정수 NNXX가 주어진다 (1N,X20171 \le N, X \le 2017, X×N50000X \times N \le 50000).

출력

조건을 만족하는 배정이 없으면 첫째 줄에 -1을 출력한다.

배정이 있으면 NN개의 줄을 출력한다. ii번째 줄에는 정수 2X2X개를 출력한다. 먼저 개집 ii를 주 거처로 삼는 개 XX마리를 번호가 커지는 순서로, 이어서 개집 ii를 보조 거처로 삼는 개 XX마리를 번호가 커지는 순서로 쓴다.

조건을 만족하는 배정이 여러 가지이므로 다음 배정만 정답으로 인정한다. 11 이상 NN 이하인 모든 ii11 이상 XX 이하인 모든 kk에 대해, (i1)X+k(i - 1)X + k번 개의 주 거처는 개집 ii이고 보조 거처는 개집 ((i+k1)modN)+1((i + k - 1) \bmod N) + 1이다.

노트

개집 번호와 개 번호는 모두 11번부터 시작한다. 어떤 개집도 닫히지 않는 밤도 정원 조건을 만족해야 하며, 그런 밤에는 개집마다 그곳을 주 거처로 삼는 개 XX마리가 그대로 잔다.