1 #include<cstdio>
2 #define N 30000007
3 #define M 10000000
4 #define fo(a,b,c) for(int a=b;a<=c;a++)
5 #define max(a,b) (a)>(b)?(a):(b)
6 using namespace std;
7 int n,m,ma,tt,a[2000],z[M],f[N];
8 int main(){
9 scanf("%d",&n);
10 fo(i,1,n){
11 scanf("%d",&a[i]);
12 ma=max(a[i],ma);
13 if (a[i]==1) tt++;
14 }
15 fo(i,2,ma*2) f[i]=true;
16 fo(i,1,ma*2){
17 if (f[i]) z[++m]=i;
18 fo(j,1,m){
19 if (i*z[j]>ma*2) break;
20 f[i*z[j]]=false;
21 }
22 }
23 if (tt>2){
24 int x=0;
25 fo(i,1,n)
26 if (a[i]!=1&&f[a[i]+1])
27 x=max(x,a[i]);
28 if (x==0){
29 printf("%d\n",tt);
30 fo(i,1,tt)
31 printf("1 ");
32 printf("\n");
33 }
34 else{
35 printf("%d\n",tt+1);
36 fo(i,1,tt)
37 printf("1 ");
38 printf("%d\n",x);
39 }
40 }
41 if (tt==2){
42 int x=0,y=0,w=0;
43 fo(i,1,n)
44 if (a[i]!=1&&f[a[i]+1])
45 x=max(x,a[i]);
46 if (x)
47 printf("3\n1 1 %d\n",x);
48 else{
49 fo(i,1,n-1)
50 fo(j,i+1,n)
51 if (f[a[i]+a[j]]&&a[i]+a[j]>w)
52 {
53 w=a[i]+a[j];
54 x=a[i];y=a[j];
55 }
56 if (x>y){
57 int z=x;x=y;y=z;
58 }
59 printf("2\n%d %d\n",x,y);
60 }
61 }
62 if (tt<2)
63 {
64 int x=0,y=0,w=0;
65 fo(i,1,n-1)
66 fo(j,i+1,n)
67 if (f[a[i]+a[j]]&&a[i]+a[j]>w){
68 w=a[i]+a[j];
69 x=a[i];y=a[j];
70 }
71 if (x>y){
72 int z=x;x=y;y=z;
73 }
74 printf("2\n%d %d\n",x,y);
75 }
76 }