Rating changes for last rounds are temporarily rolled back. They will be returned soon.
×

No tag edit access

The problem statement has recently been changed. View the changes.

×
D. Simple Subset

time limit per test

1 secondmemory limit per test

256 megabytesinput

standard inputoutput

standard outputA tuple of positive integers {*x*_{1}, *x*_{2}, ..., *x*_{k}} is called simple if for all pairs of positive integers (*i*, *j*) (1 ≤ *i* < *j* ≤ *k*), *x*_{i} + *x*_{j} is a prime.

You are given an array *a* with *n* positive integers *a*_{1}, *a*_{2}, ..., *a*_{n} (not necessary distinct). You want to find a simple subset of the array *a* with the maximum size.

A prime number (or a prime) is a natural number greater than 1 that has no positive divisors other than 1 and itself.

Let's define a subset of the array *a* as a tuple that can be obtained from *a* by removing some (possibly all) elements of it.

Input

The first line contains integer *n* (1 ≤ *n* ≤ 1000) — the number of integers in the array *a*.

The second line contains *n* integers *a*_{i} (1 ≤ *a*_{i} ≤ 10^{6}) — the elements of the array *a*.

Output

On the first line print integer *m* — the maximum possible size of simple subset of *a*.

On the second line print *m* integers *b*_{l} — the elements of the simple subset of the array *a* with the maximum size.

If there is more than one solution you can print any of them. You can print the elements of the subset in any order.

Examples

Input

2

2 3

Output

2

3 2

Input

2

2 2

Output

1

2

Input

3

2 1 1

Output

3

1 1 2

Input

2

83 14

Output

2

14 83

Codeforces (c) Copyright 2010-2022 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: May/24/2022 15:46:03 (k3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|