#include <iostream>
#include <cmath>
#include <iomanip>
#include <climits>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
const int MOD = 1000000007;
bool isPrime(long long n) {
for (long long i = 2; i * i <= n;i++) {
if (n % i == 0) {
return false;
}
}
return n >= 2;
}
int main() {
vector<int> v;
int n;cin >> n;
for (int i = 1;i <= n;i++) {
int value;cin >> value;
v.push_back(value);
}
int currentLength = 0, maxLength = 0;
int currentSum = 0, maxSum = 0;
int index = -1;
for (int i = 0;i < n;i++) {
if (isPrime(v[i])) {
currentLength++;
currentSum += v[i];
}
else {
currentLength = 0;
currentSum = 0;
}
if (currentLength > maxLength) {
maxLength = currentLength;
maxSum = currentSum;
index = i - maxLength + 1;
}
else if (currentLength == maxLength) {
if (currentSum > maxSum) {
maxLength = currentLength;
maxSum = currentSum;
index = i - maxLength + 1;
}
}
}
if (index == -1) {
cout << "NOT FOUND";
}
else {
cout << maxLength << endl;
for (int i = 0;i < maxLength;i++) {
cout << v[index + i] << " ";
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPG51bWVyaWM+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTU9EID0gMTAwMDAwMDAwNzsKCmJvb2wgaXNQcmltZShsb25nIGxvbmcgbikgewoJZm9yIChsb25nIGxvbmcgaSA9IDI7IGkgKiBpIDw9IG47aSsrKSB7CgkJaWYgKG4gJSBpID09IDApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0KCXJldHVybiBuID49IDI7Cn0KCmludCBtYWluKCkgewoJdmVjdG9yPGludD4gdjsKCglpbnQgbjtjaW4gPj4gbjsKCWZvciAoaW50IGkgPSAxO2kgPD0gbjtpKyspIHsKCQlpbnQgdmFsdWU7Y2luID4+IHZhbHVlOwoJCXYucHVzaF9iYWNrKHZhbHVlKTsKCX0KCglpbnQgY3VycmVudExlbmd0aCA9IDAsIG1heExlbmd0aCA9IDA7CglpbnQgY3VycmVudFN1bSA9IDAsIG1heFN1bSA9IDA7CglpbnQgaW5kZXggPSAtMTsKCglmb3IgKGludCBpID0gMDtpIDwgbjtpKyspIHsKCQlpZiAoaXNQcmltZSh2W2ldKSkgewoJCQljdXJyZW50TGVuZ3RoKys7CgkJCWN1cnJlbnRTdW0gKz0gdltpXTsKCQl9CgkJZWxzZSB7CgkJCWN1cnJlbnRMZW5ndGggPSAwOwoJCQljdXJyZW50U3VtID0gMDsKCQl9CgkJaWYgKGN1cnJlbnRMZW5ndGggPiBtYXhMZW5ndGgpIHsKCQkJbWF4TGVuZ3RoID0gY3VycmVudExlbmd0aDsKCQkJbWF4U3VtID0gY3VycmVudFN1bTsKCQkJaW5kZXggPSBpIC0gbWF4TGVuZ3RoICsgMTsKCQl9CgkJZWxzZSBpZiAoY3VycmVudExlbmd0aCA9PSBtYXhMZW5ndGgpIHsKCQkJaWYgKGN1cnJlbnRTdW0gPiBtYXhTdW0pIHsKCQkJCW1heExlbmd0aCA9IGN1cnJlbnRMZW5ndGg7CgkJCQltYXhTdW0gPSBjdXJyZW50U3VtOwoJCQkJaW5kZXggPSBpIC0gbWF4TGVuZ3RoICsgMTsKCQkJfQoJCX0KCX0KCWlmIChpbmRleCA9PSAtMSkgewoJCWNvdXQgPDwgIk5PVCBGT1VORCI7Cgl9CgllbHNlIHsKCQljb3V0IDw8IG1heExlbmd0aCA8PCBlbmRsOwoJCWZvciAoaW50IGkgPSAwO2kgPCBtYXhMZW5ndGg7aSsrKSB7CgkJCWNvdXQgPDwgdltpbmRleCArIGldIDw8ICIgIjsKCQl9Cgl9Cn0KCgoK