Để sinh dữ liệu test cho các bài toán thi là một dãy gồm phần tử có giá trị đôi một khác nhau và tăng dần, Hải dùng cách sau: Xét một dãy gồm số, bằng cách kết hợp chúng lại với nhau (thực hiện phép toán cộng) để có thể tạo ra được các con số khác nhau và chỉ cần in ra theo thứ tự tăng dần sẽ có được một dãy phần tử cần tìm, ví dụ xét dãy ba số là: bằng cách kết hợp sẽ sinh ra tối đa bảy số khác nhau là: và .
Tuy nhiên, Hải không biết lập trình và cũng chưa tính được có thể tạo được tối đa bao nhiêu con số khác nhau sinh ra theo quy tắc trên từ phần tử cho trước. Hãy lập trình giúp Hải.
Input
Dòng đầu tiên là số nguyên dương thỏa .
Dòng thứ hai chứa giá trị của các phần tử , các phần tử cách nhau ký tự trắng và thỏa .
Output
Dòng đầu tiên in ra số là số cách kết hợp.
Dòng tiếp theo in số theo thứ tự tăng dần, các số cách nhau ký tự trắng.
Samples
Sample Input 1
3
3 1 6
Sample Output 1
7
1 3 4 6 7 9 10
Sample Input 2
5
3 3 6 7 9
Sample Output 2
15
3 6 7 9 10 12 13 15 16 18 19 21 22 25 28
Comments