#include <stdio.h>
#include <math.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
int n,i,j,k,m,ma,mb=0;
int an[10000],bn[10000],cn[10000];
if(a%2==0)a+=1;
for(n=a;n<=b;n+=2)//a到b的范围
{
j=n;//保护n的值
for(i=0;j;i++)//倒序存放在数组bn[]i位
{
bn[i]=j%10;
j/=10;
// printf("%d",bn[i]);
}
m=i-1;
for(k=0;k<=i-1;k++)//倒叙变顺序
{
an[k]=bn[m];
m--;
// printf("%d\n",an[k]);
}
for(k=0;k<=i;k++)//判断是否位回文数
{
ma=1;
if(an[k]!=bn[k])
{
ma=0;break;
}
}
if(ma){cn[mb]=n;mb++;}//储存回文数
//printf("cn=%d\n",cn[mb]);
}
/*for(i=0;i<=mb;i++)
{
//printf("%d\n",cn[i]);
}*/
int cd,vf;
for(i=0;i<=mb-1;i++)//判断质数
{
vf=1;
for(cd=2;cd*cd<=cn[i];cd++)
{
if(cn[i]%cd==0)
{
vf=0;break;
}
}
if(vf)printf("%d\n",cn[i]);
}
return 0;
}