#include<iostream>
using namespace std;
const long int maxn=100000000;
long int a,b;
bool visit[maxn];
long int prime[maxn];
int sieve(int min,int max)
{
long int i,j,k=0;
visit[0]=visit[1]=1;
for(i=2;i<=max;i++)
{
if(visit[i]==0)
{
prime[k++]=i;
for(j=i;i*j<=max;j++) visit[i*j]=1;
}
}
return k;
}
int check_pld(int a)
{
int list[100]={0};
int len=0;
while(a>0)
{
list[len++]=a%10;
a/=10;
}
int flag=1;
for(int i=0;i<len/2;i++) if(list[i]!=list[len-1-i]) {flag=0; break; }
return flag;
}
int main()
{
cin >>a>>b;
int num=sieve(a,b);
for(int i=0;i<num;i++) if(prime[i]>=a) if(check_pld(prime[i])==1) cout<<prime[i]<<endl;
return 0;
}