Dãy hoán vị

View as PDF

Time limit: 2.0s , Memory limit: 256M , Points: 0 (partial)

Cho dãy hoán vị P có độ dài N và một số nguyên K.

Bạn có thể thực hiện thao tác như sau với bất kỳ số lần nào (có thể không thực hiện):

  • Chọn hai chỉ số i, j (1 \le i < j \le N) thỏa mãn j-i \geq K|P_i - P_j| = 1. Hoán đổi giá trị của P_iP_j.

Tìm dãy hoán vị có thứ tự từ điển nhỏ nhất được tạo ra sau khi thực hiện một số (có thể không) thao tác như trên.

Input

  • Dòng đầu tiên chứa hai số nguyên dương NK (1 \le N \le 5.10^5, 1 \le K \le N-1).
  • Dòng tiếp theo chứa N số nguyên là các phần tử của dãy hoán vị P (1 \le P_i \le N).
  • Dữ liệu đảm bảo dãy số P là dãy hoán vị hợp lệ.

Output

  • In ra trên N dòng, mỗi dòng gồm các phần tử của dãy hoán vị có thứ tự từ điển nhỏ nhất được tạo ra sau khi thực hiện một số (có thể không) thao tác như trên, theo thứ tự.

Examples

Sample Input
4 2
4 2 3 1
Sample Output
2
1
4
3

Scoring

  • Subtask 1 với 30\% số điểm: N \le 9
  • Subtask 2 với 40\% số điểm: N \le 2000
  • Subtask 3 với 30\% số điểm: Không có ràng buộc gì thêm

Notes

Trong ví dụ, các thao tác được thực hiện như sau:

  1. Chọn i=2, j=4. Dãy hoán vị thu được: P = \{4,1,3,2\}
  2. Chọn i=1, j=3. Dãy hoán vị thu được: P = \{3,1,4,2\}
  3. Chọn i=1, j=4. Dãy hoán vị thu được: P = \{2,1,4,3\}

Có thể nhận thấy rằng không còn dãy hoán vị nào có thứ tự từ điển nhỏ hơn được tạo ra.


Comments