#include<bits/stdc++.h>
using namespace std;
bool hw(int n){
int t=n;
//n=12345,相反数m=54321
//5 54 543 5432 54321
int m=0;
while(n!=0){
int g=n%10;
m=m*10+g;
n/=10;
}if(m==t){
return 1;
}return 0;
}bool zs(int n){
if(n%2==0&&n!=2||n%3==0&&n!=3||n%5==0&&n!=5||n%7==0&&n!=7){//缩减
return 0;
}for(int i=2;i*i<=n;i++){
if(n%i==0){//判断是否是质数
return 0;
}
}
return 1;
}int main(){
int a,s;
scanf("%d%d",&a,&s);
if(s>9989899){
s=9989899;//最大的回文数and质数
}for(int i=a;i<=s;i++){
//是质数 是回文数
//因为回文的时间复杂度更小,先判断回文,再判断质数
if(hw(i)==1&&zs(i)==1){
cout<<i<<endl;
}
}return 0;
}