메뉴 건너뛰기

문제


시간메모리제출 회통과 회비율
1초128MB
0
0
0.0%
나의 횟수나의 판정시도 명성공 명비율
00
0.0%
문제

JOI 고등학교의 학생 \(N\)명이 동서로 한 줄로 서 있다. 줄의 서쪽 끝에서 \(i\)번째 학생이 학생 \(i\)이다. 각 학생은 정수 하나가 적힌 번호표를 달고 있다. 처음 학생 \(i\)의 번호표에는 정수 \(A_i\)가 적혀 있다.

바톤이 \(M\)개 있고, 바톤에는 \(1\)부터 \(M\)까지의 번호가 붙어 있다. \(k = 1, 2, \ldots, M\)에 대해 아래 조작을 한다. 바톤 \(k\) (\(2 \le k \le M\))에 대한 조작은 바톤 \(k-1\)에 대한 조작이 끝난 뒤에 한다.

선생님이 바톤 \(k\)를 학생 \(1\)에게 준다. 바톤을 받은 학생은 다음 규칙에 따라 바톤을 넘긴다.

규칙: 학생 \(i\)가 바톤 \(k\)를 받았다고 하자.

  • \(1 \le i \le N-1\)일 때: 학생 \(i\)의 번호표 정수를 \(k\)로 나눈 나머지가 학생 \(i+1\)의 번호표 정수를 \(k\)로 나눈 나머지보다 크면, 학생 \(i\)와 학생 \(i+1\)이 번호표를 교환한 뒤 학생 \(i\)는 학생 \(i+1\)에게 바톤을 넘긴다. 그렇지 않으면 번호표를 교환하지 않고 학생 \(i\)는 학생 \(i+1\)에게 바톤을 넘긴다.
  • \(i = N\)일 때: 학생 \(N\)은 바톤을 선생님에게 넘긴다.

선생님이 학생 \(N\)에게서 바톤 \(k\)를 받으면 바톤 \(k\)에 대한 조작은 끝이다.

학생의 번호표에 처음 적혀 있던 정수와 바톤 개수 \(M\)이 주어질 때, 선생님이 학생 \(N\)에게서 바톤 \(M\)을 받은 뒤 각 학생의 번호표 정수를 구하라.

입력

입력은 다음 형식으로 주어진다.

\(N\) \(M\)

\(A_1\)

\(A_2\)

\(\vdots\)

\(A_N\)

  • 입력은 \(1+N\)줄이다.
  • 첫째 줄에 정수 \(N\), \(M\)이 공백 하나로 구분되어 주어진다. 학생 수와 바톤 개수를 나타낸다.
  • 이어지는 \(N\)줄 중 \(i\)번째 줄(\(1 \le i \le N\))에 정수 \(A_i\)가 주어지고, 학생 \(i\)의 번호표에 처음 적혀 있는 정수를 나타낸다.
  • \(1 \le N \le 100\)
  • \(1 \le M \le 100\)
  • \(1 \le A_i \le 1000\)
  • 입력되는 값은 모두 정수이다.
출력

다음 형식으로 출력한다.

\(N\)줄을 출력한다. \(i\)번째 줄(\(1 \le i \le N\))에, 선생님이 학생 \(N\)에게서 바톤 \(M\)을 받은 뒤 학생 \(i\)의 번호표 정수를 출력한다.

예시 1
입력
6 4 3 2 8 3 1 5
출력
2 3 1 8 5 3
설명

학생이 \(6\)명이고 처음 번호표는 차례로 \(3, 2, 8, 3, 1, 5\)이다. 바톤은 \(4\)개이다.

예시 2
입력
10 6 1 2 3 4 5 6 7 8 9 10
출력
6 1 2 3 10 4 8 7 9 5
위로