Time limit: 2.0s , Memory limit: 256M , Points: 0 (partial)
Cho dãy hoán vị có độ dài và một số nguyên .
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ố , () thỏa mãn và . Hoán đổi giá trị của và .
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 và (, ).
- Dòng tiếp theo chứa số nguyên là các phần tử của dãy hoán vị ().
- Dữ liệu đảm bảo dãy số là dãy hoán vị hợp lệ.
Output
- In ra trê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 với số điểm:
- Subtask với số điểm:
- Subtask với 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:
- Chọn , . Dãy hoán vị thu được:
- Chọn , . Dãy hoán vị thu được:
- Chọn , . Dãy hoán vị thu được:
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