#include <stdio.h>
#define N 30
int p[N] = {2}, m[N] = {2}, k = 1;
static int isprim(int x) {
int mk = m[k];
if (x == mk * mk) {
m[k++] = x;
return 0;
}
for (int i = 1; i < k; ++i) {
int mi = m[i];
while (mi < x)
mi += 2 * p[i];
m[i] = mi;
if (x == mi)
return 0;
}
return 1;
}
void genprim(void) {
for (int i = 1, j = 3; i < N; ++i, j += 2)
if (isprim(j))
p[i] = j;
}
int main(void) {
genprim();
for (int i = 0; i < N; ++i) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE4gMzAKCmludCBwW05dID0gezJ9LCBtW05dID0gezJ9LCBrID0gMTsKCnN0YXRpYyBpbnQgaXNwcmltKGludCB4KSB7CglpbnQgbWsgPSBtW2tdOwoJaWYgKHggPT0gbWsgKiBtaykgewoJCW1baysrXSA9IHg7CgkJcmV0dXJuIDA7Cgl9CgkKCWZvciAoaW50IGkgPSAxOyBpIDwgazsgKytpKSB7CgkJaW50IG1pID0gbVtpXTsKCQl3aGlsZSAobWkgPCB4KQoJCSAgICBtaSArPSAyICogcFtpXTsKCQltW2ldID0gbWk7CgkJaWYgKHggPT0gbWkpCgkJICAgIHJldHVybiAwOwoJfQoJCglyZXR1cm4gMTsKfQoKdm9pZCBnZW5wcmltKHZvaWQpIHsKCWZvciAoaW50IGkgPSAxLCBqID0gMzsgaSA8IE47ICsraSwgaiArPSAyKQoJICAgIGlmIChpc3ByaW0oaikpCgkgICAgICAgIHBbaV0gPSBqOwp9CgppbnQgbWFpbih2b2lkKSB7CglnZW5wcmltKCk7Cglmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkgewoJCXByaW50ZigiJWQgIiwgcFtpXSk7Cgl9CglwdXRzKCJcbiIpOwoJcmV0dXJuIDA7Cn0K