만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

서열 사회

면접 대비

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

요약
N명을 K개 그룹으로 나눈 뒤 각 사람의 새 순위가 주어질 때, 원래 순위를 복원해 그룹별로 오름차순 출력합니다.
난이도

보통10점 중 4점

유형
시뮬레이션, 배열
정답자
아직 제출이 없습니다

문제

NN명의 사람이 살고 있는 마을이 있고, 서열에 따라 1번부터 NN번까지 번호가 배정되어 있다.

어느 날 내분이 일어나 KK개의 그룹으로 나누어졌고, 이제 각 그룹 안에서 서열을 다시 매기려고 한다. 각 그룹의 새로운 서열은 나누어지기 전 자신보다 서열이 낮았던 사람 중 현재 다른 그룹에 속한 사람의 수이다.

예를 들어, 10명이 3개의 그룹으로 나누어진 상태에서 기존 서열이 [2,5,9][2, 5, 9], [1,7,8][1, 7, 8], [3,4,6,10][3, 4, 6, 10]이라고 하자. 그러면 새로 매긴 서열은 [1,3,6][1, 3, 6], [0,5,5][0, 5, 5], [2,2,3,6][2, 2, 3, 6]이 된다. 나누어지기 전 5번인 사람은 5보다 작으면서 다른 그룹에 속한 사람이 1, 3, 4번이므로 서열은 3이 된다.

KK개의 그룹으로 나누어진 후 새로 매긴 서열의 정보가 주어진다. 나누어지기 전 각 사람의 서열을 구해보자.

입력

첫째 줄에 NN과 KK가 주어진다. 둘째 줄부터 KK개의 줄에는 그룹의 정보가 주어진다. 각 줄은 음이 아닌 정수 CiC_i로 시작하며, 이 값은 그 그룹에 있는 사람의 수이다. 이어서 그 사람들의 새로 매긴 서열이 공백으로 구분되어 주어진다.

출력

첫째 줄부터 KK번째 줄까지 각 줄에 한 그룹 사람들의 원래 서열을 오름차순으로, 공백으로 구분해 출력한다.

제한

1≤K≤N≤1,0001 \le K \le N \le 1{,}000

예제1

  1. 예제 1

    입력
    10 3
    3 3 1 6
    3 0 5 5
    4 6 2 3 2
    
    예상 출력
    2 5 9
    1 7 8
    3 4 6 10