베라와 개집 배정
시간 제한2초메모리 제한512 MB
M = X*N마리의 개에게 주거지와 보조 주거지를 배정해, 어떤 집을 하나 닫아도 열린 집마다 잠자는 개가 X+1마리를 넘지 않도록 만든다.
문제
베라에게 번부터 번까지 번호가 붙은 개집 개와 번부터 번까지 번호가 붙은 개 마리가 있다. 여기서 이다. 개집 는 정확히 마리 의 주 거처이면서 또 다른 마리 의 보조 거처여야 한다. 개마다 주 거처가 하나, 보조 거처가 하나 있고 둘은 서로 다른 개집이다.
밤마다 청소 때문에 개집이 최대 하나 닫힌다. 개는 자기 주 거처가 열려 있으면 그곳에서 자고, 닫혀 있으면 보조 거처에서 잔다. 어떤 개집도 닫히지 않는 밤을 포함해 가능한 모든 밤에, 열려 있는 개집마다 자는 개가 마리를 넘지 않아야 한다.
조건을 모두 만족하는 배정을 하나 찾거나, 그런 배정이 없음을 판정하라.
입력
첫째 줄에 정수 과 가 주어진다 (, ).
출력
조건을 만족하는 배정이 없으면 첫째 줄에 -1을 출력한다.
배정이 있으면 개의 줄을 출력한다. 번째 줄에는 정수 개를 출력한다. 먼저 개집 를 주 거처로 삼는 개 마리를 번호가 커지는 순서로, 이어서 개집 를 보조 거처로 삼는 개 마리를 번호가 커지는 순서로 쓴다.
조건을 만족하는 배정이 여러 가지이므로 다음 배정만 정답으로 인정한다. 이상 이하인 모든 와 이상 이하인 모든 에 대해, 번 개의 주 거처는 개집 이고 보조 거처는 개집 이다.
노트
개집 번호와 개 번호는 모두 번부터 시작한다. 어떤 개집도 닫히지 않는 밤도 정원 조건을 만족해야 하며, 그런 밤에는 개집마다 그곳을 주 거처로 삼는 개 마리가 그대로 잔다.