#CCBCHBAHAI0000045. Remove Duplicates (Remove Duplicates)

Remove Duplicates (Remove Duplicates)

Remove Duplicates (Remove Duplicates)

Nguồn: Codeforces

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

Đề bài

Cho mảng số nguyên a0,a1,…,an−1a_0,a_1,\ldots,a_{n-1}.

Với mỗi giá trị xuất hiện trong mảng, chỉ được giữ lại lần xuất hiện ngoài cùng bên phải của giá trị đó. Thứ tự tương đối giữa các phần tử được giữ phải giống thứ tự của chúng trong mảng ban đầu.

Một chỉ số ii được giữ khi và chỉ khi không tồn tại chỉ số jj ở bên phải có cùng giá trị:

∄j  (i<j<n ∧ aj=ai).\nexists j\;\bigl(i<j<n\ \land\ a_j=a_i\bigr).

Giả sử các chỉ số được giữ là

i0<i1<⋯<im−1.i_0<i_1<\cdots<i_{m-1}.

Hãy in mm và dãy

ai0,ai1,…,aim−1.a_{i_0},a_{i_1},\ldots,a_{i_{m-1}}.

Input

Dòng đầu chứa số nguyên nn. Dòng thứ hai chứa nn số nguyên a0,a1,…,an−1a_0,a_1,\ldots,a_{n-1}.

Output

Dòng đầu in số phần tử còn lại mm. Dòng thứ hai in mm phần tử sau khi loại các bản sao theo quy tắc trên.

Subtask

Subtask 1 (100 điểm): 1≤n≤501\le n\le50; 1≤ai≤10001\le a_i\le1000.

Ví dụ

Input

6
1 5 5 1 6 1

Output

3
5 6 1

Giải thích

Giá trị 11 chỉ giữ lần xuất hiện cuối ở chỉ số 5; giá trị 55 chỉ giữ lần xuất hiện cuối ở chỉ số 2; giá trị 66 giữ nguyên. Các chỉ số được giữ là 2,4,52,4,5, nên kết quả là 5 6 1.