#CCBCHBAHAI0000035. Chèn giá trị vào đầu bằng dịch phải (Insert at the Front by Right Shifting)

Chèn giá trị vào đầu bằng dịch phải (Insert at the Front by Right Shifting)

Chèn giá trị vào đầu bằng dịch phải (Insert at the Front by Right Shifting)

Nguồn: Phước Hưng OJ

Phiên bản: Phước Hưng OJ Extended

Đề bài

Một mảng tĩnh có sức chứa CC, nghĩa là có thể lưu tối đa CC phần tử. Hiện tại mảng đang chứa nn phần tử logic

a0,a1,…,an−1,0≤n≤C.a_0,a_1,\ldots,a_{n-1},\qquad 0\le n\le C.

Cần chèn giá trị xx vào đầu mảng.

  • Nếu n=Cn=C, mảng đã đầy và phép chèn không thể thực hiện.
  • Nếu n<Cn<C, kích thước logic mới là n′=n+1n'=n+1 và mảng kết quả bb thỏa
b0=x,b_0=x, bi=ai−1(1≤i<n′).b_i=a_{i-1}\qquad(1\le i<n').

Hãy thực hiện phép chèn theo quy tắc trên.

Input

Dòng đầu chứa ba số nguyên C,n,xC,n,x. Nếu n>0n>0, dòng thứ hai chứa nn số nguyên a0,a1,…,an−1a_0,a_1,\ldots,a_{n-1}.

Output

Nếu n=Cn=C, in FULL. Ngược lại, dòng đầu in kích thước mới n+1n+1; dòng thứ hai in các phần tử sau khi chèn.

Subtask

Subtask 1 (100 điểm): 1≤C≤2⋅1051\le C\le2\cdot10^5; 0≤n≤C0\le n\le C; ∣x∣,∣ai∣≤109|x|,|a_i|\le10^9.

Ví dụ

Input

5 3 9
1 2 3

Output

4
9 1 2 3

Giải thích

Vì n=3<C=5n=3<C=5, còn chỗ trống. Ba phần tử cũ được dịch phải một vị trí rồi 99 được đặt vào chỉ số 00.