#include <bits/stdc++.h>
using namespace std;
const long long N = 1e6 + 5;
long long n;
vector <long long> a;
vector <bool> f(N, true);
void sang(){
f[0] = f[1] = false;
for (int i = 2; i * i <= N; i++){
if (f[i]){
for (int j = i*i; j <= N; j+=i){
f[j] = false;
}
}
}
}
void subtask1(){
sang();
bool ok = false;
for (int i = 1; i <= n; i++){
if (f[a[i]] && f[a[i + 1]]){
ok = true;
break;
}
}
if (!ok){
cout << "NOT FOUND";
return;
}
else{
long long dis = LLONG_MIN, sum = LLONG_MIN;
vector <long long> ans;
vector <long long> res;
for (int i = 1; i <= n; i++){
if (f[a[i]]){
ans.push_back(a[i]);
}
else{
long long pos = ans.size();
long long s = 0;
for (long long x : ans){
s = s + x;
}
if (pos > dis){
dis = pos;
sum = s;
res = ans;
}
else if (pos == dis){
if (s > sum){
dis = pos;
sum = s;
res = ans;
}
else if (s < sum){
continue;
}
else if (s == sum){
continue;
}
}
ans.clear();
}
}
cout << res.size()<< '\n';
for (long long x : res){
cout << x << ' ';
}
}
}
void nhap(){
cin >> n;
a.resize(n + 1);
for (int i = 1; i <= n; i++){
cin >> a[i];
}
subtask1();
}
#define task "test"
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0);
if (fopen(task".inp", "r")){
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
nhap();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGxvbmcgbG9uZyBOID0gMWU2ICsgNTsKCmxvbmcgbG9uZyBuOwp2ZWN0b3IgPGxvbmcgbG9uZz4gYTsKdmVjdG9yIDxib29sPiBmKE4sIHRydWUpOwp2b2lkIHNhbmcoKXsKICAgIGZbMF0gPSBmWzFdID0gZmFsc2U7CiAgICBmb3IgKGludCBpID0gMjsgaSAqIGkgPD0gTjsgaSsrKXsKICAgICAgICBpZiAoZltpXSl7CiAgICAgICAgICAgIGZvciAoaW50IGogPSBpKmk7IGogPD0gTjsgais9aSl7CiAgICAgICAgICAgICAgICBmW2pdID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0Kdm9pZCBzdWJ0YXNrMSgpewogICAgc2FuZygpOwogICAgYm9vbCBvayA9IGZhbHNlOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICBpZiAoZlthW2ldXSAmJiBmW2FbaSArIDFdXSl7CiAgICAgICAgICAgIG9rID0gdHJ1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgaWYgKCFvayl7CiAgICAgICAgY291dCA8PCAiTk9UIEZPVU5EIjsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBlbHNlewogICAgICAgIGxvbmcgbG9uZyBkaXMgPSBMTE9OR19NSU4sIHN1bSA9IExMT05HX01JTjsKICAgICAgICB2ZWN0b3IgPGxvbmcgbG9uZz4gYW5zOwogICAgICAgIHZlY3RvciA8bG9uZyBsb25nPiByZXM7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICAgICAgaWYgKGZbYVtpXV0pewogICAgICAgICAgICAgICAgYW5zLnB1c2hfYmFjayhhW2ldKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvcyA9IGFucy5zaXplKCk7CiAgICAgICAgICAgICAgICBsb25nIGxvbmcgcyA9IDA7CiAgICAgICAgICAgICAgICBmb3IgKGxvbmcgbG9uZyB4IDogYW5zKXsKICAgICAgICAgICAgICAgICAgICBzID0gcyArIHg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAocG9zID4gZGlzKXsKICAgICAgICAgICAgICAgICAgICBkaXMgPSBwb3M7CiAgICAgICAgICAgICAgICAgICAgc3VtID0gczsKICAgICAgICAgICAgICAgICAgICByZXMgPSBhbnM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmIChwb3MgPT0gZGlzKXsKICAgICAgICAgICAgICAgICAgICBpZiAocyA+IHN1bSl7CiAgICAgICAgICAgICAgICAgICAgICAgIGRpcyA9IHBvczsKICAgICAgICAgICAgICAgICAgICAgICAgc3VtID0gczsKICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gYW5zOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzIDwgc3VtKXsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHMgPT0gc3VtKXsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYW5zLmNsZWFyKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY291dCA8PCByZXMuc2l6ZSgpPDwgJ1xuJzsKICAgICAgICBmb3IgKGxvbmcgbG9uZyB4IDogcmVzKXsKICAgICAgICAgICAgY291dCA8PCB4IDw8ICcgJzsKICAgICAgICB9CiAgICB9Cn0Kdm9pZCBuaGFwKCl7CiAgICBjaW4gPj4gbjsKICAgIGEucmVzaXplKG4gKyAxKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgY2luID4+IGFbaV07CiAgICB9CiAgICBzdWJ0YXNrMSgpOwp9CgojZGVmaW5lIHRhc2sgInRlc3QiCnNpZ25lZCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOwogICAgaWYgKGZvcGVuKHRhc2siLmlucCIsICJyIikpewogICAgICAgIGZyZW9wZW4odGFzayIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbih0YXNrIi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBuaGFwKCk7CiAgICByZXR1cm4gMDsKfQo=