Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

EITASKDIS - Phân công công việc

Bài toán phân công công việc là một bài toán rất phổ biến trong cuộc sống. Xét một dạng cơ bản như sau: có n người và m công việc, mỗi người có năng suất làm việc như nhau và công việc thứ i cần ai thời gian để một người thực hiện, mỗi công việc chỉ giao cho 1 người. Một trong những thuật toán đơn giản để thực hiện việc phân công này là:

- B1: Sắp xếp các công việc theo thời gian hoàn thành.

- B2: phân công việc có thời gian thực hiện lớn nhất chưa giao cho người làm ít thời gian nhất (tổng thời gian các công việc được giao là nhỏ nhất).

- B3: nếu mọi công việc được giao thì kết thúc, ngược lại quay lại bước 2.

Input

Dòng đầu tiên là 2 số nguyên n, m(n, m<=10^5).

Dòng thứ 2 là m số nguyên dương không vượt quá 10^5 là thời gian thực hiện của m công việc tương ứng.

Output

1 dòng gồm n số nguyên lần lượt là thời gian làm việc của n người. Lưu ý: ở bước 2, nếu có nhiều hơn 1 người có thời gian làm việc ít nhất thì chọn người có thứ tự nhỏ nhất trong số đó.

Example

Input:
3 5
2 5 6 4 7

Output:
7 8 9
Input:
3 5
2 6 6 3 7

Output:
7 9 8

Added by:Ha Minh Ngoc
Date:2018-03-01
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:CSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG FSHARP GO JAVA JS-MONKEY NODEJS PHP PYTHON PYPY PYPY3 PYTHON3 RUBY SQLITE SWIFT VB.NET
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.