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