#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100000 + 5;
bool p[MAXN];
int lastPrime(int x){
while (!p[--x]){}
return x;
}
int reverse(int x){
int a[15] = {};
int cur = 0, res = 0;
while (x){
int g = x % 10;
a[++cur] = g;
x /= 10;
}
for (int i = 1;i <= cur;i++){
res = res * 10 + a[i];
}
return res;
}
int main(){
memset(p, true, sizeof(p));
p[0] = p[1] = false;
for (int i = 2;i <= MAXN;i++){
if (p[i]){
for (int j = 2;j <= MAXN / i;j++){
p[i * j] = false;
}
}
}
int n, m;
scanf("%d", &n, &m);
int last = lastPrime(m);
for (int i = n;i <= m;i++){
if (p[i] && p[reverse(i)]){
printf("%d", i);
if (i != last){
printf(",");
}
}
}
return 0;
}