아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

겹강 찾기

시간 제한1초메모리 제한256 MB

요약
서로 다른 M개의 N차원 수열이 주어질 때, 각 수열과 모든 좌표에서 하나씩 일치하는 새로운 수열을 M개 이하로 출력하되 어떤 새로운 수열도 입력 수열과 완전히 같아서는 안 된다.
난이도

어려움10점 중 8점

유형
조합론, 수학, 그리디, 구현
정답자
아직 제출이 없습니다

문제

싸이컴 회원 MM명은 올해 모두 같은 과목을 수강하며, 이들이 수강하는 과목의 수는 NN개입니다. 같은 과목이더라도 여러 개의 분반이 있어 같은 분반인 사람들만 함께 강의를 듣게 됩니다. 그런데 놀랍게도 MM명의 회원들은 모두 서로 다른 분반을 수강해, 적어도 한 개의 수업을 함께 듣는 사람이 한 쌍도 없었습니다.

싸이컴 회원들은 외로움에서 벗어나기 위해 KK명의 상상 속 친구를 만들기로 했습니다. 각 친구는 모두 싸이컴 회원들과 같은 종류의 과목을 수강하게 될 것이며, 분반은 자유롭게 정할 수 있습니다. 우리의 목표는 각 사람별로 모든 과목에서 상상 속 친구와 같이 수업을 듣게 하는 것입니다.

KK는 자유롭게 정할 수 있지만, 상상의 친구가 실제 인간의 수보다 많아서는 안 되기 때문에 K≤MK \le M을 만족해야 합니다. 또한, 각 싸이컴 회원에 대해 과목 분반 번호가 모두 정확히 겹치는 상상 속 친구가 존재해서는 안 됩니다.

입력

첫 줄에는 과목의 수 NN과 회원의 수 MM이 주어집니다.

둘째 줄부터 M+1M+1번째 줄까지, i+1i+1번 줄에는 정수 Ai,1,Ai,2,⋯ ,Ai,NA_{i, 1}, A_{i,2}, \cdots, A_{i, N}이 주어집니다. Ai,jA_{i, j}는 ii번 회원이 듣는 jj번 과목의 분반 번호를 나타냅니다.

출력

첫 줄에는 상상 속 친구의 수 KK를 출력합니다.

둘째 줄부터 K+1K+1번 줄까지, i+1i+1번 줄에 정수 Bi,1,Bi,2,⋯ ,Bi,NB_{i,1}, B_{i,2}, \cdots, B_{i,N}을 출력합니다. Bi,jB_{i,j}는 상상 속 ii번 친구가 듣는 jj번 과목의 분반 번호를 나타냅니다.

제한

  • 2≤N≤10002 \le N \le 1000
  • 2≤M≤10002 \le M \le 1000
  • 모든 1≤i≤N1 \le i \le N, 1≤x<y≤M1 \le x < y \le M에 대해, Ax,i≠Ay,iA_{x,i} \neq A_{y,i}입니다. (다시 말해, 싸이컴 회원들은 모든 과목에서 분반이 하나도 겹치지 않습니다.)
  • 1≤Ai,j≤M1 \le A_{i,j} \le M
  • 0≤K≤M0 \le K \le M
  • 1≤Bi,j≤M1 \le B_{i,j} \le M
  • 모든 1≤i≤M1 \le i \le M, 1≤j≤K1 \le j \le K에 대해, Ai,x≠Bj,xA_{i, x} \neq B_{j, x}이고 1≤x≤N1 \le x \le N인 xx가 적어도 하나 존재해야 합니다. (다시 말해, 각 싸이컴 회원에 대해 과목 분반 번호가 모두 정확히 겹치는 상상 속 친구가 존재해서는 안 됩니다.)
  • 모든 1≤i≤M1 \le i \le M, 1≤j≤N1 \le j \le N에 대해, Ai,j=Bx,jA_{i, j} = B_{x, j}이고 1≤x≤K1 \le x \le K인 xx가 적어도 하나 존재해야 합니다. (다시 말해, 각 싸이컴 회원은 모든 과목에서 적어도 한 명의 상상 속의 친구와 같이 수업을 들을 수 있어야 합니다.)

예제1

  1. 예제 1

    입력
    3 3
    1 1 1
    2 2 2
    3 3 3
    
    예상 출력
    3
    1 2 3
    2 3 1
    3 1 2