#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string>
#include <math.h>
#include <string.h>
using namespace std;
#define MAXDIGITS 255
#define MAXLINES 1000
//#define p(y) printf("%s\n",y)
int isPrime(int num) {
if (num == 1) return 0; //1
if (num == 2) return 1; //2
if ((num & 1) == 0) return 0; //even
for (int i = 3; i < (sqrt((double)num) + 1); i += 2)
if (num % i == 0) return 0;
return 1;
}
int main() {
string tmp;
long result[MAXLINES];
int length = 0;
int z = 0;
cin >> tmp;
while (tmp!="0") {
length = tmp.length();
long maxPrime = 0;
for (int i = 1; (i <= 5) && (i<= length); i++) {//i digits maxmum digits: 5
for (int j = 0; j <= (length - i); j++) {
string num = tmp.substr(j, i);
long number = stol(num);
//printf("%ld\n", number);
if (isPrime(number) && number>maxPrime) {
maxPrime = number;
}
//printf("%ld\n", maxPrime);
}
}
result[z++] = maxPrime;
//printf("%ld\n", maxPrime);
cin >> tmp;
}
for (int i = 0; i < z; i++)
cout << result[i]<<endl;
//cin >> tmp;
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgTUFYRElHSVRTIDI1NQojZGVmaW5lIE1BWExJTkVTIDEwMDAKLy8jZGVmaW5lIHAoeSkgcHJpbnRmKCIlc1xuIix5KQppbnQgaXNQcmltZShpbnQgbnVtKSB7CglpZiAobnVtID09IDEpIHJldHVybiAwOyAvLzEKCWlmIChudW0gPT0gMikgcmV0dXJuIDE7IC8vMgoJaWYgKChudW0gJiAxKSA9PSAwKSByZXR1cm4gMDsgLy9ldmVuCglmb3IgKGludCBpID0gMzsgaSA8IChzcXJ0KChkb3VibGUpbnVtKSArIDEpOyBpICs9IDIpCgkJaWYgKG51bSAlIGkgPT0gMCkgcmV0dXJuIDA7CglyZXR1cm4gMTsKfQppbnQgbWFpbigpIHsKCXN0cmluZyB0bXA7Cglsb25nIHJlc3VsdFtNQVhMSU5FU107CglpbnQgbGVuZ3RoID0gMDsKCWludCB6ID0gMDsKCWNpbiA+PiB0bXA7Cgl3aGlsZSAodG1wIT0iMCIpIHsKCQlsZW5ndGggPSB0bXAubGVuZ3RoKCk7CgkJbG9uZyBtYXhQcmltZSA9IDA7CgoJCWZvciAoaW50IGkgPSAxOyAoaSA8PSA1KSAmJiAoaTw9IGxlbmd0aCk7IGkrKykgey8vaSBkaWdpdHMgbWF4bXVtIGRpZ2l0czogNQoJCQlmb3IgKGludCBqID0gMDsgaiA8PSAobGVuZ3RoIC0gaSk7IGorKykgewoJCQkJc3RyaW5nIG51bSA9IHRtcC5zdWJzdHIoaiwgaSk7CgkJCQlsb25nIG51bWJlciA9IHN0b2wobnVtKTsKCQkJCS8vcHJpbnRmKCIlbGRcbiIsIG51bWJlcik7CgkJCQlpZiAoaXNQcmltZShudW1iZXIpICYmIG51bWJlcj5tYXhQcmltZSkgewoJCQkJCW1heFByaW1lID0gbnVtYmVyOwoJCQkJfQoJCQkJLy9wcmludGYoIiVsZFxuIiwgbWF4UHJpbWUpOwoJCQl9CgkJfQoJCXJlc3VsdFt6KytdID0gbWF4UHJpbWU7CgkJLy9wcmludGYoIiVsZFxuIiwgbWF4UHJpbWUpOwoJCWNpbiA+PiB0bXA7Cgl9Cglmb3IgKGludCBpID0gMDsgaSA8IHo7IGkrKykKCQljb3V0IDw8IHJlc3VsdFtpXTw8ZW5kbDsKCS8vY2luID4+IHRtcDsKCXJldHVybiAwOwp9