번호표 교환

1번부터 M번까지 카드 순서대로 각 나머지를 기준으로 이웃 번호표를 교환한 뒤 최종 줄을 출력합니다.

쉬움2시뮬레이션구현면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

교실에 학생 NN명이 한 줄로 서 있다. 앞에서부터 ii번째 학생은 번호표를 한 장 가지고 있고, 거기에 적힌 수는 AiA_i이다.

카드는 1번부터 MM번까지 MM장 있다. 카드는 반드시 1번부터 차례로 쓰며, kk번 카드(2kM2 \le k \le M)는 k1k-1번 카드를 쓴 다음에 쓴다.

ii번 카드를 쓰는 방법은 다음과 같다.

  • 선생님이 1번 학생에게 ii번 카드를 준다.
  • 카드를 받은 jj번 학생은 j+1j+1번 학생에게 카드를 넘긴다. 이때 AjmodiA_j \bmod iAj+1modiA_{j+1} \bmod i보다 크면 두 학생이 번호표를 서로 교환한다. 여기서 AjA_j는 그 시점에 jj번 학생이 들고 있는 번호표의 수이다.
  • 마지막 학생이 카드를 받으면 그 카드는 버린다.

MM번 카드까지 버리면 게임이 끝난다. 게임이 끝난 뒤 학생들이 가진 번호표를 앞에서부터 차례로 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 학생 수 NN과 카드 수 MM이 공백으로 구분되어 주어진다. (1N1001 \le N \le 100, 1M1001 \le M \le 100)

둘째 줄부터 NN개 줄에 걸쳐 각 학생이 처음에 가진 번호표의 수 AiA_i가 한 줄에 하나씩 주어진다. (1Ai10001 \le A_i \le 1000)

출력

게임이 끝난 뒤 각 학생이 가진 번호표의 수를 앞에서부터 한 줄에 하나씩 출력한다.

힌트

학생 6명이 번호표 3, 2, 8, 3, 1, 5를 순서대로 가지고 있고 카드가 4장이라고 하자. 카드를 한 장씩 쓸 때마다 줄은 이렇게 바뀐다.

  • 1번 카드를 쓴 뒤: 3 2 8 3 1 5
  • 2번 카드를 쓴 뒤: 2 8 3 3 1 5
  • 3번 카드를 쓴 뒤: 2 3 3 1 8 5
  • 4번 카드를 쓴 뒤: 2 3 1 8 5 3