Problem
Tại một công ty phần cứng máy tính, tất cả các sản phẩm được đánh số liên tục từ 1
đến N
. Mỗi sản phẩm sau khi được sản xuất đều được đưa vào bộ phận kiểm soát chất lượng, nơi nó được kiểm tra và được bán ra thị trường hoặc được đưa vào danh sách sản phẩm bị lỗi và bị xóa sổ. Thật không may, danh sách các sản phẩm bị lỗi đôi khi quá dài. Sau đó, để rút gọn, các số liên tiếp được thay thế bằng một khoảng: số của mục đầu tiên và mục cuối cùng của khoảng được biểu thị bằng dấu gạch ngang.
Ví dụ: thay vì
1,3,4,5,6,7,8,10,12,16,17,20,21,22,23,24
đã ghi
1,3-8,10,12,16-17,20-24
Viết một chương trình, với danh sách đầy đủ các số sản phẩm bị lỗi, sẽ hiển thị danh sách này ở dạng rút gọn.
Đầu vào
Trong dòng đầu tiên, trước tiên hãy nhập số N
- tổng số sản phẩm, sau đó nhập số M
- số sản phẩm bị lỗi. Trong dòng thứ hai, hãy nhập số lượng sản phẩm bị lỗi theo thứ tự sản phẩm tăng dần.
Đầu ra
Xuất trong một dòng danh sách số lượng mặt hàng bị lỗi ở dạng viết tắt. Các khoảng phải được phân tách bằng dấu phẩy. Không được có khoảng trắng trong chuỗi.
Giới hạn
1<=M<=N<=1000000
.
Ví dụ
<đầu>
# |
Đầu vào |
Đầu ra |
điều>
1 |
10 5
1 3 5 7 9
|
1,3,5,7,9 |
2 |
40 16
1 3 4 5 6 7 8 10 12 16 17 20 21 22 23 24
|
1,3-8,10,12,16-17,20-24 |
3 |
11 11
1 2 3 4 5 6 7 8 9 10 11
|
1-11 |
4 |
10000 1
5
|
5 |
Запрещенные операторы: sort
; min
; max
; reverse
; count
; sum
; index