#include<bits/stdc++.h>
using namespace std;
bool prime(int n){
for(int i=2;i<=sqrt(n);i++)
if(n%i==0)return false;
return true;
}
int a,b,n,palindrome1,palindrome2,palindrome3,palindrome4,palindrome5,palindrome6,palindrome7,palindrome8;
int main(){
cin>>a>>b;
for(int i=a;i<=b;i++){
n=i;//一位
if(n<10&&prime(n))cout<<n<<endl;
else if(n>=10){
for(int d1=1;d1<=9;d1++){//二位
int d2=d1;
palindrome1=10*d1+d2;
if(n==palindrome1&&prime(n))cout<<n<<endl;
}
for(int d1=1;d1<=9;d1++){//三位
for(int d2=0;d2<=9;d2++){
palindrome2=100*d1+10*d2+d1;
if(n==palindrome2&&prime(n))cout<<n<<endl;
}
}
for(int d1=1;d1<=9;d1++){//四位
for(int d2=0;d2<=9;d2++){
palindrome3=1000*d1+100*d2+10*d2+d1;
if(n==palindrome3&&prime(n))cout<<n<<endl;
}
}
for(int d1=1;d1<=9;d1+=2){//只有奇数才会是素数//五位
for(int d2=0;d2<=9;d2++){
for(int d3=0;d3<=9;d3++){
palindrome4=10000*d1+1000*d2+100*d3+10*d2+d1;//处理回文数
if(n==palindrome4&&prime(n))cout<<n<<endl;
}
}
}
for(int d1=1;d1<=9;d1+=2){//只有奇数才会是素数//六位
for(int d2=0;d2<=9;d2++){
for(int d3=0;d3<=9;d3++){
palindrome5=100000*d1+10000*d2+1000*d3+100*d3+10*d2+d1;//处理回文数
if(n==palindrome5&&prime(n))cout<<n<<endl;
}
}
}
for(int d1=1;d1<=9;d1+=2){//只有奇数才会是素数//七位
for(int d2=0;d2<=9;d2++){
for(int d3=0;d3<=9;d3++){
for(int d4=0;d4<=9;d4++){
palindrome6=1000000*d1+100000*d2+10000*d3+1000*d4+100*d3+10*d2+d1;//处理回文数
if(n==palindrome6&&prime(n))cout<<n<<endl;
}
}
}
}
for(int d1=1;d1<=9;d1+=2){//只有奇数才会是素数//八位
for(int d2=0;d2<=9;d2++){
for(int d3=0;d3<=9;d3++){
for(int d4=0;d4<=9;d4++){
palindrome7=10000000*d1+1000000*d2+100000*d3+10000*d4+1000*d4+100*d3+10*d2+d1;//处理回文数
if(n==palindrome7&&prime(n))cout<<n<<endl;
}
}
}
}
for(int d1=1;d1<=9;d1+=2){//只有奇数才会是素数//九位
for(int d2=0;d2<=9;d2++){
for(int d3=0;d3<=9;d3++){
for(int d4=0;d4<=9;d4++){
for(int d5=0;d5<=9;d5++){
palindrome8=100000000*d1+10000000*d2+1000000*d3+100000*d4+10000*d5+1000*d4+100*d3+10*d2+d1;//处理回文数
if(n==palindrome8&&prime(n))cout<<n<<endl;
}
}
}
}
}
}
}
return 0;
}