int huiwen(int i,int w)
{
	int k;k=pow(10,w);int m;
    if(w==0)return(1);
	if(w>=1)
	{
	     if(i/k!=i%10)return(0);
	     if(i/k==i%10)
		 {
		     i=(i-k*(i/k))/10;
		     w=w-2;
		     m=huiwen(i,w);
		     return(m);
		 }
	}
}
void main()
{
	int m,n;int i;int w;int k,j;int count=0;int a[100];
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		w=log10(i);
		k=huiwen(i,w);
		if(k==1)
		{
			for(j=2;j<i;j++)
			{
				if(i%j==0)break;
			}if(j==i){a[count]=i;count++;}
		}
		else continue;
	}if(count==0)printf("no");
	if(count>0)
	{
		for(i=0;i<count-1;i++)
		{
			printf("%d,",a[i]);
		}printf("%d",a[count-1]);
	}
}


void main(){
	int huiwen(int a);
	int prime(int b);
	int min,max,i,j=0,p[100]={0};
	scanf("%d%d",&min,&max);
	for (i=min;i<=max;i++){
		if (huiwen(i)==1&&prime(i)==1){
			j++;
			p[j]=i;
		}
	}
	if (j!=0){
		for (i=1;i<j;i++)
			printf("%d,",p[i]);
		printf("%d",p[j]);
	}
	else printf("no");
}
int huiwen(int a){
	int temp,weishu=0,i,j=-1,count=0,number[10];
	for (i=1;;i*=10){
		if (a/i>=1&&a/i<10)
			weishu++;
		else if (a/i>=10){
			weishu++;
			continue;
		}
		else break;
	}
	temp=a;
	for (i=pow((float)10,weishu-1);i>=1;i/=10){
		if (temp/i>=1&&temp/i<10){
			j++;
			number[j]=temp/i;
			temp%=i;
		}
		else{
			j++;
			number[j]=0;
			temp%=i;
		}
	}
	for (i=0;i<weishu;i++){
		if (number[i]!=number[weishu-i-1])
			count++;
	}
	if (count==0) return 1;
	else return 0;
}
int prime(int b){
	int i;
	for(i=2;i<=sqrt((float)b);i++){
		if (b%i==0)
			break;
	}
	if (i>sqrt((float)b))
		return 1;
	else return 0;
}


int pan(long n)
{
	int i,l=0,t=sqrt(n);
	for(i=2;i<=t;i++)
	{
		if(n%i==0) break;
	}
	if(i>t) l=1;
	if(n==1) l=0;
	return l;
}
int wei(long n)
{
	int i=1;
	while(1)
	{
		n=n/10;
		if(n==0) break;
		i=i+1;
	}
	return i;
}
int huiwen(long n)
{
	char a[40]={'\0'};
	int w=wei(n),i,l,s=1;
	for(i=0;i<w;i++)
	{
		a[i]=n%10;
		n=n/10;
	}
	for(l=0;l<w/2;l++) s=s*(a[l]==a[w-1-l]);
	return s;
}
int main()
{
	long p=0,i,m,n,l;
	scanf("%d  %d",&m,&n);
    for(i=m;i<=n;i++)
	{
		if(huiwen(i)&&pan(i))
		{
			printf("%d",i);
			p+=1;
			break;
		}
	}
	for(l=i+1;l<=n;l++)
	{
		if(huiwen(l)&&pan(l))
		{
			printf(",%d",l);
			p+=1;
		}
	}
	if(p==0) printf("no\n");
	return 0;
}


char isPrime(int n)
{
	char flag=1;
	int i;
	for(i=2;i<=sqrt(n);i++){
		if(n%i==0){
			flag=0;
			break;
		}
	}
	return flag;
}

int nDigits(int n)
{
	int i;
	for(i=0;n!=0;i++){
		n/=10;
	}
	return i;
}

char isPalindrome(int n)
{
	char flag=1;
	int d,i;
	for(i=0,d=nDigits(n)-1;d>i;i++,d--){
		if((int)(n/pow(10,i))%10-(int)(n/pow(10,d))%10)flag=0;
	}
	return flag;
}

int main()
{
	int m,n,i;
	char flag=1;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(isPrime(i)){
			if(isPalindrome(i)){
				if(flag){
					printf("%d",i);
					flag=0;
				}
				else printf(",%d",i);
			}
		}
	}
	if(flag)printf("no");
	printf("\n");
	return 0;
}


int judge(int n)
{
    int i;
    for(i=2;i<n;i++)
    {
                    if(n%i==0)
                    break;
    }
    if(i==n)
    return 1;
    else
    return 0;
}

int scan(int n)
{
    int a,b,i,j,k,r,s=1,t=1,count=0;
    for(i=0;;i++)
    {
                 t=10*t;
                 if(n/t==0)
                 break;
    }
    for(j=0;j<=i/2;j++)
    {
                       t=t/10;s=s*10;r=s/10;
                       a=(n/t)%10;
                       b=(n%s)/r;
                       if(a==b)
                       count++;
    }
    if(count==i/2+1)
    return 1;
    else
    return 0;
}

main()
{
      int a,b,i,p=0,q=0,count=0;
      scanf("%d %d",&a,&b);
      for(i=a;i<=b;i++)
      {
                  p=judge(i);
                  q=scan(i);
                  if(p==1&&q==1&&count!=0)
                  {
                                          count++;
                                          printf(",%d",i);
                  }
                  if(p==1&&q==1&&count==0)
                  {
                                          printf("%d",i);
                                          count++;
                  }
      }
      if(count!=0)
      printf("\n");
      else
      printf("no\n");
      return 0;
}


int su(int x);
int hui(int x);
void main()
{
	int m,n,flag=0,x;
	scanf("%d%d",&m,&n);
	for(x=m;x<=n;x++)
	{
		if(su(x)+hui(x)==2)
		{
			if(flag==1)printf(",");
			printf("%d",x);
			flag=1;
		}
	}
	if(flag==0)printf("no");
}

int su(int x)
{
	if(x==1)return(0);
	else
	{
		int i,flag=1;
		for(i=2;i<=x/2;i++)
		{
			if(x%i==0){flag=0;break;}
		}
		return(flag);
	}
}

int hui(int x)
{
	int i=x,n=0,flag=1,*p;
	while(i>0){i=i/10;n+=1;}
	p=(int *)malloc(n*sizeof(int));
	for(i=x;i>0;i=i/10)
	{
		*p=i%10;
		p+=1;
	}
	i=0,p-=n;
	while(i<n/2)
	{
		if(*(p+i)!=*(p+n-i-1)){flag=0;break;}
		i+=1;
	}
	return(flag);
}


int sushu(long x)
{
	long h;
	for(h=2;h<=sqrt(x);h++)
		if(x%h==0) return 0;
	return 1;
}
int huiwen(long x)
{
	long y=0,z=x;
	while(x!=0)
	{
		y=y*10+x%10;
		x=x/10;
	}
	if(z==y) return 1;
	else return 0;
}

void main()
{
	long int m,n,i,k=0,a[1000];
	scanf("%ld %ld",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(sushu(i)&&huiwen(i)) {k++;a[k]=i;}
	}
	if(k!=0){
	for(i=1;i<k;i++)
		printf("%ld,",a[i]);
	printf("%ld\n",a[k]);}
	else printf("no");
}


int isprime(int n)
{
	int i;
	if(n%2==0) return 0;
	for(i=3;i<=(int)sqrt(n);i+=2)
		if(n%i==0) return 0;
	return 1;
}
int isturn(int n)
{
	char num[10];
	int k=0,i;
	while(n/10!=0)
	{
		num[k++]=n%10+'0';
		n=n/10;
	}
	num[k++]=n%10+'0';
	for(i=0;i<=k/2;i++)
		if(num[i]!=num[k-1-i]) return 0;
	return 1;
}
int main()
{
	int n,m,i,t=1,flag=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
		if(isprime(i)&&isturn(i))
			if(t==1) {printf("%d",i);t=0;flag=1;}
			else printf(",%d",i);
	printf("\n");
	if(flag==0) printf("no\n");
	return 0;

}


int q(int l);
int p(int l);
void main()
{
	int n,m,i,j=0,a[1000];
	scanf("%d%d",&n,&m);
	for(i=n;i<=m;i++)
	{
		if(q(i)!=0&&p(i)!=0){a[j]=i;j++;}
	}
	if(j==0)printf("no");
	else {printf("%d",a[0]);for(i=1;i<j;i++)printf(",%d",a[i]);}
	printf("\n");
}
int q(int l)
{
	int i;
	if(l%2==0)return 0;
	else {
		for(i=3;i<=sqrt(l);i=i+2)if(l%i==0)break;
		if(i<=sqrt(l))return 0;else return 1;
	}
}

int p(int l)
{
	int i,j,h;char a[20];
	i=0;
	while(l)
	{
		a[i]=l%10;
		l=l/10;
		i++;
	}
	for(j=0;j<i;j++)if(a[j]!=a[i-j-1])break;
	if(j<i)return 0;else return 1;
}


int main(int argc, char* argv[])
{
	int m,n,i,j,k,hws=0;
	scanf("%d %d",&m,&n);
	int s=n-m+1;
	int *a;
	a = (int *)malloc(sizeof(int)*s);
	int *reversed_number;
	reversed_number = (int *)malloc(sizeof(int)*s);
	int *remainder;
	remainder = (int *)malloc(sizeof(int)*s);
	int *b;
	b = (int *)malloc(sizeof(int)*s);
	for(k=0;k<s;k++){
		a[k]=0;
		reversed_number[k]=0;
		remainder[k]=0;
		b[k]=k+m;
	}
	for(i=m;i<=n;i++){
		for(j=2;j<i;j++){
			if(b[i-m]%j==0)
				a[i-m]++;
		}
	}
	for(i=m;i<=n;i++){
		if(a[i-m]==0){
			while(b[i-m]!=0){
				remainder[i-m]=b[i-m]%10;
				reversed_number[i-m]*=10;
				reversed_number[i-m]+=remainder[i-m];
				b[i-m]=b[i-m]/10;
			}
		}
		if(reversed_number[i-m]==i)
			hws++;
	}
    if(hws==0)
		printf("no");
	int c=0;
	if(hws!=0){
		for(i=m;i<=n;i++){
			if(reversed_number[i-m]==i&&i!=1&&i!=2){
				c=i;
				printf("%d",i);
				break;
			}
		}
	}
	if(hws!=0){
		for(j=c+1;j<=n;j++){
			if(reversed_number[j-m]==j&&j!=1&&j!=2)
				printf(",%d",j);
		}
	}
	return 0;
}


int hui(int n)
{
	int i=0,N=n;
	for(;n!=0;)
	{
		i=i*10+n%10;
		n=n/10;
	}

if(N==i)return 1;
	else return 0;
}
int su(int n)
{
	if(n==1) return 0;
	else if(n==2) return 1;
	else if(n%2==0) return 0;
	else
	{
		int i,flag=1;
		for(i=3;i<n;i++)
			if(n%i==0) {flag=0;break;}
		if(flag==1) return 1;
		if(flag==0) return 0;
	}
}

void main()
{
	int min,max,i,k[1000]={0},j=0;
	scanf("%d %d",&min,&max);
	for(i=min;i<=max;i++)
		if(hui(i)==1&&su(i)==1) {k[j]=i;j++;}
		if(j!=0){
	for(i=0;i<j-1;i++)
	{
        printf("%d,",k[i]);
	}
	printf("%d\n",k[j-1]);}
		else printf("no\n");
}


void main()
{
	int sushu(int);
	int huiwen(int);
	int i,m,n,s=0;
	int a[50]={0};
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(sushu(i)&&huiwen(i))
		{
		a[s]=i;
		s=s+1;
		}
	}
	if(s==0)
		printf("no");
	else
	{
		for(i=0;i<s-1;i++)
			printf("%d,",a[i]);
		printf("%d",a[s-1]);
	}
}

int sushu(int m)
{
	int i,k;
	k=sqrt(m);
	for (i=2;i<=k;i++)
	{
		if(m%i==0)
			break;

	}
	if(i>k)
		return(1);
	else
		return(0);
}
int huiwen(int m)
{
	int i,n,f,v=0;
	n=m;
	for(i=0;n!=0;i++)
	{
		f=n%10;
		v=v*10+f;
		n=n/10;
	}
	if(v==m)
		return(1);
	else
		return(0);
}


int h(int n)
{
	int s=0,k,y=n;
	while(y>0)
	{
		k=y%10;
		s=10*s+k;
		y=y/10;
	}
	if(s==n)
		return(1);
	else
		return(0);
}
int s(int n)
{
	if(n==1)
		return(0);
	else
	{
		int i,j;
		j=n/2;
		for(i=2;i<=j;i++)
		{
		if(n%i==0)break;
		else
			j=n/i;
		}
		if(i>j)
			return(1);
		else
			return(0);
	}
}
void main()
{
	int m,n,i,k=0;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n&&k<1;i++)
	{
		if(h(i)&&s(i))
		{
			printf("%d",i);
			k=k+1;
		}
	}
	if(k==0)
		printf("no");
	else
	{
		int j;
		for(j=i;j<=n;j++)
		{
			if(h(j)&&s(j))
				printf(",%d",j);
		}
	}
}


int fy(int x)
{
    int z=1,i,t,m=0;
     t=x;
    while(t>0)
       {m=m*10+t%10;
       t=t/10;
        }
    if(m!=x)z=0;
   else {for(i=2;i<=sqrt(x);i++)
       {if(x%i==0)
         {z=0;
          break;}
       }
       }
    return z;
}
int main(int argc, char *argv[])
{
  int k,j,l;
  scanf("%d%d",&k,&j);
  for(l=k;l<=j;l++)
    {
         if(fy(l)==1)
             {printf("%d",l);
               break;}
    }
    if(l>j) printf("no");
    else {
              for(l=l+1;l<=j;l++)
                {
                  if(fy(l)==1)
                  printf(",%d",l);
                }
          }
  return 0;
}


int su(int n)
{
    int i;
    for(i=2;i<n;i++)
    if(n%i==0)
    break;
    if(i==n)
    return 1;
    else
    return 0;
}
int hui(int n,int k,int m)
{
    if(k==0)
    if(m==n)
    return 1;
    else
    return 0;
    else
    return hui(n,k/10,m*10+k%10);
}
int main()
{
    int i,m,n;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++)
    if(su(i)&&hui(i,i,0))
    {
        printf("%d",i);
        break;
    }
    if(i>n)
    printf("no");
    else
    for(i=i+1;i<=n;i++)
    if(su(i)&&hui(i,i,0))
    printf(",%d",i);
}


void main()
{
	int sushu(int s);
	int huiwen(int s);
	int m,n,i,t;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		t=i;
		if(sushu(i)>0&&huiwen(i)>0)
		{printf("%d",i);break;}

	}
	if(t==n&&huiwen(t)==0)
		printf("no");

	if(t<n)
	{
		for(i=t+1;i<=n;i++)
		{
			if((sushu(i)>0)&&(huiwen(i)>0))
				printf(",%d",i);
		}
	}

}
int sushu(int s)
{
	int j;
	double k;
	k=sqrt(s);
	for(j=2;j<=k;j++)
	{
		if(s%j==0)
		{
			return(0);break;
		}
	}
	if(j>k)
	return(1);
}
int huiwen(int s)
{
	int a[10],z=0,i;
	while(s/10>0)
	{
		a[z]=s%10;
		s=s/10;
		z++;
	}
	a[z]=s;
	for(i=0;i<=z/2;i++)
	{
		if(a[i]!=a[z-i])
		{return(0);break;}
	}
	if(i>z/2)
	return(1);
}


int sushu(int t)
{
	int r,i;
	for(i=2;i<t;i++)
	{
		r=t%i;
		if(r==0)
			return 0;
	}
	return 1;
}
int huiwen(int t)
{
	char s[100]={0};
	int i,j,k;
	for(i=1;;i++)
	{
		j=t/(pow(10,i));
		if(j==0)
			break;
	}
	k=i;
	for(i=0;i<k;i++)
	{
		s[i]=t%10;
		t=t/10;
	}
	j=k-1;
	for(i=0;;)
	{
		if(i>j)
			return 1;
		if(s[i++]!=s[j--])
			return 0;
	}
}
int main()
{
	int m,n,i,j=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{

		if(huiwen(i) && sushu(i) && j==0)
		{
			printf("%d",i);
			j++;
		}
		else if(huiwen(i) && sushu(i))
			printf(",%d",i);
	}
	if(j==0)
		printf("no");
	return 0;
}


void main()
{
	int F(int x);
	int G(int x);
	int m,n,i;
	scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++)
	{
		if(F(i)&&G(i)) {printf("%d",i);break;}
	}
   if(i==n+1) printf("no");
for(i=i+1;i<=n;i++)
	{
		if(F(i)&&G(i)) printf(",%d",i);
	}
}

 int F(int x)
 {
 int z,t=0;
 z=x;
 do
 {
	 t=t*10+z%10;
	 z=z/10;
 }
 while(z!=0);
 if(t==x)return(1);
 else return(0);
 }

 int G(int x)
 {
	 int i,b=1;
	 if(x==10201) return(0);
	 else
	 {
 for(i=2;i<sqrt(x);i++)
 {
 if(x%i==0) {b=0;break;}
 }
return(b);
 }
 }


int ok(int a)
{
    int i;
    for(i=2;i*i<=a;i++)
    if(a%i==0)return 0;
    return 1;
}
int num(int nu)
{
    int i,j;
    if(!ok(nu))return 0;
    for(i=nu,j=0;i>0;i/=10)
    {
                            j=j*10+i%10;
    }if(!ok(j))return 0;
    else if(j!=nu)return 0;
    else if(j==nu&&ok(j))return 1;
}
main()
{
     int m,n,i,count=0,a[1000];
     scanf("%d%d",&m,&n);
     for(i=m;i<=n;i++)
     {
             if(ok(i))
             {
                      if(num(i))
                      {
                                a[count]=i;
                                count++;
                      }
             }
     }
     if(count==0)printf("no");
     else {for(i=0;i<count-1;i++)
     printf("%d,",a[i]);
     printf("%d",a[count-1]);}
     getchar();
     getchar();
     getchar();
}


/* Note:Your choice is C IDE */
int huiwen(int);
int sushu(int);
void main()
{
	int m,n,i,sign=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(huiwen(i)&&sushu(i))
		{
			if(sign==0)
			{
				sign=1;printf("%d",i);
			}
			else printf(",%d",i);
		}
	}
	if(!sign) printf("no");
}

int huiwen(int a)
{
	int i,lb;
	char b[100]={'\0'};
	char c[100]={'\0'};
	for(i=0;;i++)
	{
		if(a==0) break;
		b[i]=a%10+'0';
		a=a/10;
	}
	lb=strlen(b);
	for(i=0;i<=lb-1;i++)
	  c[i]=b[lb-1-i];
	if(strcmp(c,b)==0) return 1;
	else return 0;
}

int sushu(int a)
{
	int i;
	for(i=2;i<a;i++)
	  if(a%i==0) break;
	if(i==a) return 1;
	else return 0;
}


int prime(int n)
{
	int p, i;
	p=1;
	for(i=2;i<=sqrt(n);i++)
		if(n%i==0)
		{
			p=0;
			break;
		}
	return(p);
}
int back(int n)
{
	int q, i, len, l, s, t;
	q=1;
	len=log10(n)+1;
	l=len;
	for(i=1;i<=l/2;i++)
	{
		s=n/pow(10,len-1);
		t=n%10;
		if(s!=t)
		{
			q=0;
			break;
		}
		n=(n-(s)*pow(10,len-1))/10;
		len-=2;
	}
	return (q);
}
void main()
{
	int n, m, i;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
		if(prime(i)*back(i)==1)
		{
			printf("%d",i);
			break;
		}
	if(i==n+1)
		goto end;
	for(i=i+1;i<=n;i++)
		if(prime(i)*back(i)==1)
			printf(",%d",i);
	printf("\n");
	goto ed;
end:printf("no\n");
ed:n=n;
}


int p1(int n)
{
  int i;
  for(i=2;i<n/2;i++)
   if(n%i==0) return 0;
  return 1;
}
int p2(int n)
{
  int a[10],m=-1;
  while(n>0)
   {
     a[++m]=n %10;
     n=n/10;
   }
  int i=0,j=m;
  while(i<=j)
   {
     if(a[i]!=a[j]) return 0;
     i++; j--;
   }
  return 1;
}
int main()
{
  int m,n;
  int i,f=0;
  scanf("%d%d",&m,&n);
  for(i=m;i<=n;i++)
     if( p1(i) && p2(i))
       {
         if(f==0) {printf("%d",i);f=1;}
         else printf(",%d",i);
       }
  if(f==0) printf("no");
}


int main()
{
	int rev(int x);
	int prime(int y);
	int m,n,i,j=0,k,a[100];
	scanf("%d %d",&m,&n);
	i=m;
	while(i<=n)
	{
		if(rev(i)==1&&prime(i)==1)
		{
			a[j]=i;
			j++;
		}
		i++;
	}
	if(j==0) printf("no");
	else
	{
	    printf("%d",a[0]);
	    for(k=1;k<j;k++) printf(",%d",a[k]);
	}
	return 0;
}

int rev(int x)
{
	int a=0,b,temp;
	temp=x;
	while(x>0)
	{
		b=x%10;
		a=a*10+b;
		x=x/10;
	}
	if(temp==a) return 1;
	else return 0;
}

int prime(int y)
{
	int c;
	for(c=2;c<=y/2;c++)
	{
		if(y%c==0) break;
	}
	if(c<=y/2) return 0;
	else return 1;
}


int main(void)
{
    int rev(int a);
    int p(int a);
    int m, n, i, ok=1;
    scanf("%d %d", &m, &n);
    for (i=m;i<=n;i++)
    {
        if (rev(i)&&p(i))
        {
            if (ok)
            {
                ok =0;
                printf("%d", i);
            }
            else
                printf(",%d", i);
        }
    }

    if (ok)
        printf("no");

    return 0;

}

int rev(int a)
{
    int b=0, a1=a;
    while (a)
    {
        b*=10;
        b+=a%10;
        a/=10;
    }
    if (a1==b)
        return 1;
    else
        return 0;
}

int p(int a)
{
    int i;
    for (i=2;i*i<=a;i++)
        if (!(a%i))
            return 0;
    return 1;
}


main()
{
     int m,n,i,t=0,de,p,res;
      int f(int x);
      scanf("%d %d",&m,&n);
      for(i=m;i<=n;i++)
      {

            res=0;
            p=i;
            while(p)
            {
                    de=p%10;
                    res=res*10+de;
                    p/=10;
            }
            if(res==i)
           if(f(i))
           { if(t==0)
            {printf("%d",i);t++;}
            else
            {printf(",%d",i);t++;}}

      }
      if(t==0)printf("no\n");
      getchar();
      getchar();
}

int f(int x)
{
int i;
if (x == 1 || x == 2 || x == 3 || x == 5)
return 1;
else if (x % 2)
{
for (i = 3; i <= x / 2 + 1; i += 2)
{
if (x % i == 0) return 0;
}
return 1;
}
else
{
return 0;
}
}


void main()
{
	int i,k,a,b,c=0,e=0,d,f=0,sum=0,j,rever;
	scanf("%d %d",&a,&b);
	for(i=a;i<=b;i++)
	{
		sum=0;
		d=i;
		k=(int)sqrt(i);
		for(j=2;j<=k;j++)
		{
			if(i%j==0){c=0;break;}
			else c=1;
		}
		if(c==1)
		{
			do{
			sum=sum*10;
			rever=d%10;
			d=d/10;
			sum=sum+rever;
			}while(d!=0);
		}
		if(sum==i)
		{
			f++;
			e=1;
			if(f==1)
				printf("%d",i);
			else printf(",%d",i);}
	}if(e==0) printf("no");
}


int huiwen(int m)
{
	int n=0,s,a;
	a=m;
	for(;m>0;)
	{
		s=m%10;
		m=m/10;
		n=n*10+s;
	}
	if(n==a)
		return(1);
	else
		return(0);
}
int sushu(int m)
{
	int i;
	if(m%2==0)
		return(0);
	else
	{
		for(i=3;i<m/2&&m%i!=0;i=i+2);
        if(m%i!=0)
			return(1);
		else
			return(0);
	}
}

void main()
{
	int m,n,o=0;
	scanf("%d %d",&m,&n);
	for(;m<=n;m++)
        if(huiwen(m)&&sushu(m))
		{
			if(o!=0)
			{
			 printf(",");

			}
					o++;
		printf("%d",m);
		}
		if(o==0)
			printf("no");

}


int f(long n){
	int i;
	for(i=sqrt(n+.1);i>1;i--)
		if(n%i==0)return 0;
	return 1;
}
int g(long n){
	int a[10],i=0,j;
	while(n)
		a[i++]=n%10,n/=10;
	for(j=0,i--;j<i;j++,i--)
		if(a[j]!=a[i])return 0;
	return 1;
}
void main(){
	long m,n,i,t=0;
	scanf("%ld%ld",&m,&n);
	for(i=m;i<=n;i++)
		if(f(i)&&g(i)){
			if(t)printf(",");
			else t=1;
			printf("%ld",i);
		}
	if(!t)printf("no");
}


int isPrim(int n)
{
  int r = (int)sqrt(n);
  int i;

  for (i = 2; i <= r; ++i)
    if (n%i == 0)
      return 0;

  return 1;
}

int isHui(int n)
{
  int m = 0, nn = n;

  do {
    m = m*10 + n%10;
    n = n/10;
  } while (n);

  return m == nn;
}

int main()
{
  int m, n, p;

  scanf("%d %d", &m, &n);
  p = 0;

  for ( ; m <= n; ++m) {
    if (isPrim(m) && isHui(m)) {
      if (!p) p = 1;
      else printf(",");
      printf("%d", m);
    }
  }

  if (!p) printf("no");
}


void judge_huiwen(int n,int t[],int y,int x)
{
	if(n/10==0)
	{
		x=x*10+n;
		t[0]=x;
	}
	else
	{
		x=x*10+n%10;
		n=n/10;
		judge_huiwen(n,t,y,x);
	}
}

void judge_sushu(int n,int t[])
{
	int i;
	for(i=2;i<n;i++)
		if(n%i==0)
		{
			t[1]=1;
			break;
		}
}

void main()
{
	int m,n,i,t[2]={0},y,temp=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		y=i;
		judge_huiwen(i,t,y,0);
		judge_sushu(i,t);
		if(t[0]==i&&t[1]==0)
		{
			printf("%d",i);
			temp=1;
			break;
		}
		t[0]=0;
		t[1]=0;
	}
	for(i=i+1;i<=n;i++)
	{
		y=i;
		judge_huiwen(i,t,y,0);
		judge_sushu(i,t);
		if(t[0]==i&&t[1]==0)
			printf(",%d",i);
		t[0]=0;
		t[1]=0;
	}
	if(temp==0)
		printf("no");
	printf("\n");
}


char ishw(int m){
	int p=1,m0=m;
	while(m0>9){
		m0/=10;
		p*=10;
	}
	while(m>=1&&p>0){
		if((m%10)!=m/p) return 0;
		m=(m%p)/10;
		p/=100;
	}
	return 1;
}

char isprime(int m){
	int p,sm;
	if(!(m%2)||m==1) return 0;
	sm=sqrt(m);
	for(p=3;p<=sm;p+=2)
		if(!(m%p)) break;
	return (p>sm);
}

void main(){
	int m,n,c=0;
	scanf("%d%d",&m,&n);
	for(;m<=n;m++)
		if(isprime(m)&&ishw(m)){
			if(c) putchar(','); else c=1;
			printf("%d",m);
		}
	if(!c) puts("no");
}


int main()
{
	int m,n,i,j,k=1,a=0,number,reversed_number=0,remainder=0;
	int prime[10000]={0},reversed[10000]={0},result[10000];

	scanf("%d%d",&m,&n);

	for(i=m;i<=n;i++)
	{
		for(j=2;j<i;j++)
		{
			if(i%j==0)
			{
				a=0;
				break;
			}
			else
			{
				a=1;
			}
		}
		if(a==1)
		{
			prime[k]=i;
			k++;
		}
	}

	for(i=1;i<=k;i++)
	{
		number=prime[i];
		reversed_number=0;
		remainder=0;

		while(number!=0)
		{
			remainder=number%10;
			reversed_number*=10;
			reversed_number+=remainder;
			number/=10;
		}

		reversed[i]=reversed_number;
		if(prime[i]==reversed[i])
		{
			result[i]=prime[i];
		}
		else
		{
			result[i]=0;
		}

	}

	a=0;
	for(i=1;i<=k;i++)
	{
		if(result[i]!=0)
		{
			printf("%d",result[i]);
			j=i;
            a=1;
			break;
		}
	}
    if(a==0)
	{
		printf("no");
	}
	else
	{
		for(i=j+1;i<=k;i++)
		{
			if(result[i]!=0)
			{
				printf(",%d",result[i]);
			}
		}
	}
    return 0;
}


int sushu(int n)
{
	int i,result=1;
	for(i=2;i<n;i++)
	{
		if(n%i==0)
		{
			result=0;
			break;
		}
	}
	return result;
}
int huiwen(int n)
{
	int bit,i,t=10,a[10];
	for(bit=1;;bit++)
	{
		if(n/t!=0)
		{
			t*=10;
		}
		else break;
	}
	t/=10;
	for(i=1;i<=bit;i++)
	{
		a[i]=n/t;
		n-=a[i]*t;
		t/=10;
	}
	int out=1;
	for(i=1;i<=bit/2;i++)
	{
		if(a[i]==a[bit-i+1])  continue;
		else
		{
			out=0;
			break;
		}
	}
	return out;
}

void main()
{
	int m,n,y=0,i,count;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(sushu(i)&&huiwen(i))
		{
			y=1;
			printf("%d",i);
			count=i;
			break;
		}
	}
	if(count!=n)
	{
		for(i=count+1;i<=n;i++)
		{
			if(sushu(i)&&huiwen(i))  printf(",%d",i);
		}
	}
	if(y==0)  printf("no");

}


int huiwen(int a)
{
    int k=0,t=a;
    while(t!=0)
    {
    k=k*10+t%10;
    t=t/10;
    }
    if (k==a) return 1;
    else return 0;
}
int su(int a)
{
    int i;
    for(i=2;i<=sqrt(a);i++)
    {
    if (a%i==0) break;
    }
    if(a==1||a==2) return 1;
    if (i<=sqrt(a)) return 0;
    else return 1;
}
int main()
{
    int m,n,i,j=0,num[100];
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++)
    {
        if (huiwen(i)==1&&su(i)==1)
        {
            num[j]=i;
            j++;
        }
    }
    if (j==0) printf("no");
    else
    {
    	for(i=0;i<j-1;i++) printf("%d,",num[i]);
    	printf("%d",num[j-1]);
    }
    return 0;
}


int FLAG=0,TAG=1;
void main()
{
	int m,n,i;
	void func(int num);
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
		func(i);
	if(FLAG==0) printf("no\n");

}

int back(int num)
{
	int result=0;
	while(num>0)
	{
		result=10*result+num%10;
		num=num/10;
	}
	return result;
}

void func(int num)
{
	int i,flag;
	for(i=2,flag=1;i<num;i++)
		if(num%i==0)
		flag=0;
		if(num!=back(num))
			flag=0;
		if(TAG&&flag) {printf("%d",num);FLAG=1;TAG=0;}
		else if(flag) {printf(",%d",num);FLAG=1;}
}


int panduansushu(int x)
{
	int i,k=0;
	for(i=1;i<=x/2;i++)
		if(x%i==0 && i!=1)
			k=k+1;
	if(k==0)
	  return 0;
	else
		return 1;

}

int suanweishu(int x)
{
	int d=0;
	while(x!=0)
	{
			x=x/10;
			d=d+1;
	}
	return d;
}

int panduanfanwen(int x,int y)
{
	if(y==2 && x/10==x%10)
		return 0;
	else
	 if(y==3 && x%10==x/100)
	    return 0;
	else
	  if(y==4 && x%10==x/1000 && (x%100)/10==(x/100)%10)
	     return 0;
	else
	  if(y==5 && x%10==x/10000 && (x%100)/10==(x/1000)%10)
		 return 0;
	else
		return 1;
}

int main()
{
	int m,n,i,a,t,b[100]={0},z=0;
	int panduansushu(int x);
	int suanweishu(int x);
	int panduanfanwen(int x,int y);
	scanf("%d%d",&m,&n);
	for(i=0;m+i<=n;i++)
	{
		a=m+i;
		if(panduansushu(a)==0)
		{
			t=suanweishu(a);
			if(panduanfanwen(a,t)==0)
			{
			  b[z]=a;
			  z=z+1;

			}
		}
	}
	if(b[0]!=0)
	{
	  for(i=0;i<z-1;i++)
		 printf("%d,",b[i]);
	 printf("%d",b[i]);
	}
	if(b[0]==0)
		printf("no");
	return 0;
}


void main()
{
	int m,n,i,p=0,pj=0;
	int reverse(int i,int j);
	int s(int i,int j);
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(i==reverse(i,0))
			if(s(i,2)==1)
			{
				pj=1;
				if(p==0)
				{
					printf("%d",i);
					p=1;
				}
				else printf(",%d",i);
			}
	}
         if(pj==0) printf("no");
}
int reverse(int i,int j)
{
	int a,k;
	if(i==0) a=j;
	else
	{
		k=i%10;
		a=reverse(i/10,j*10+k);
	}
	return(a);
}
int s(int i,int j)
{
	int a,k;
	k=sqrt(i);
	if(i==1) a=0;
	else if(i==j) a=1;
	else
	{
		if(i%j==0) a=0;
		else a=s(i,j+1);
	}
	return(a);
}


int f(int i);
int g(int i);
void main()
{
	int m,n,x,y,i,j;
	scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++)
	{
		x=f(i);
		y=g(i);
		if(x==1&&y==1)
			break;
	}
	j=i;
	if(j<=n)
	{
		printf("%d",j);
		for(i=j+1;i<=n;i++)
	    {
		    x=f(i);
		    y=g(i);
		    if(x==1&&y==1)
			    printf(",%d",i);
	    }
	    printf("\n");
	}
	else if(j>n)
	printf("no\n");
}
int f(int i)
{
	int x=1,j;
	for(j=2;j<=sqrt(i);j++)
	{
		if(i%j==0)
		{
			x=0;
			break;
		}
	}
	return(x);
}
int g(int i)
{
	int y,a;
	int c=0,d;
	d=i;
	while(d!=0)
	{
		a=d%10;
		c=(c+a)*10;
		d=d/10;
	}
	if(i==c/10)
		y=1;
	else
		y=0;
	return(y);
}


int ws(int x)
{	int i=1,c=1;
	for(i=1;;i*=10)
	{	c++;
		if((i<=x)&&(i*10>x)) break;
	}
	return(c-1);
}
int check1(int x)
{	int p=1,i;
	for(i=2;i<x;i++)
		if(x%i==0)
		{p=0;break;
		}
	return(p);
}
int reconstruct(int x)
{	int i=1,res=x%10;
	while(x!=0)
	{	x=x/10;
		res=res*10+x%10;
	}
	return(res/10);
}
int check2(int x)
{	int p=0;
	if(x==reconstruct(x)) p=1;
	return(p);
}
void main()
{	int m,n,i,j,flag=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
		if(check1(i)==1&&check2(i)==1)
		{printf("%d",i);
		flag=1;
		break;
		}
	for(j=i+1;j<=n;j++)
		if(check1(j)==1&&check2(j)==1)
		printf(",%d",j);
	if(flag==0)printf("no");
	printf("\n");
}


int sushu(int x)
{int i,j;
 j=0;
 for(i=2;i<x;i++)
     if(x%i==0)
          break;
 if(i==x) j=1;
 return(j);
}

int huiwenshu(int x)
{int i,j,k,p,t;
 k=0;
 p=0;
 for(i=1;x/i!=0;i=i*10)
continue;
 i=i/10;
 j=1;
 t=x;
 for(i=i;i>=1;i=i/10)
  {k=k+x/i*j;
   x=x-x/i*i;
   j=j*10;
   }
 if(t==k)
   p=1;
 return(p);
}

void main()
{int m,n,i,j;
 scanf("%d%d",&m,&n);
 j=0;
 for(i=m;i<=n;i++)
  {if(sushu(i)==1&&huiwenshu(i)==1)
      {if(j==0)
       {printf("%d",i);
        j++;}
       else
         printf(",%d",i);
        }
   }
  if(j==0)
   printf("no");
}


void main()
{
	int reverse(int d);
	int prime(int num);
	int m,n,p,q,r,k=0;
	scanf("%d %d",&m,&n);
	for(r=m;r<=n;r++)
	{
		p=reverse(r);
		q=prime(r);
		if(p==r&&q==1)
		{
			k++;
		    if(k==1) printf("%d",r);
		    else printf(",%d",r);
		}
	}
	if(k==0) printf("no");
}
int reverse(int d)
{
	int c,k,i,sum,e;
	int b[10]={0};
	k=log10(d);
	for(i=k;i>=0;i--)
	{
		b[i]=d/pow(10,i);
		d=d-b[i]*pow(10,i);
	}
	for(i=0;i<=k;i++)
	{
		if(b[i]!=0)
		{
			e=i;
		    break;
		}
	}
	sum=b[k];
	for(i=k-1;i>=e;i--)
		sum=sum+b[i]*pow(10,k-i);
	return(sum);
}
int prime(int num)
{
	int k,i;
	k=sqrt(num);
	for(i=2;i<=k;i++)
		if(num%i==0)
			break;
	if(i>=k+1)
		return(1);
	else return(0);
}


int huiwen(int m, int n);
main()
{
	int m,n,k,i,p=0,tag=0;
	scanf("%d%d",&m,&n);
	int a, b=0;
	for(a=m;a<=n;a++)
	{
	b=huiwen(a,0);
	if(a==b)

	{
		k=sqrt(a);
	   for(i=2;i<=k;i++)
	   if(a%i==0)break;
		if(i>k)
		{	p++;
			if(tag==0)
			{
				printf("%d",a);
				tag=1;
			}
			else
		printf(",%d",a);}

	}}	if(p==0)
		printf("no");
}
	int huiwen(int a, int b)
{	if(a==0)
	return(b);
	else return(huiwen(a/10, b*10+a%10));
	}


void main()
{	int hui(int n);
	int su(int n);
	int m,n,i,j=0,a[50];
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++) if((su(i))&&(hui(i))){a[j]=i;j++;}
	if(j==0) printf("no");
	else for(i=0;i<j;i++) {printf("%d",a[i]);if(i<j-1) putchar(',');}
}
int su(int n)
{	int i;
	for(i=2;i<n;i++) if(n%i==0) {return 0;break;}
	return 1;
}
int hui(int n)
{	int change(int n);
	int m;
	m=change(n);
	if(n==m) return 1;
	else return 0;
}
int change(int n)
{	int i,j,a,b;
	for(i=1;;i*=10) if(n/i<10) break;
	if(i<10) return n;
	else
	{	a=n/i;
		n=n%i;
		for(j=1;;j*=10) if(n/j<10) break;
		b=a+i/j*change(n);
	}
	return b;
}


int zhi(int);
int hui(int);
void main()
{
	int m,n,p,w=0;
	scanf("%d%d",&m,&n);
	for(p=m;p<=n;p++)
		if(zhi(p)&&hui(p))
		{
			if(w==0)printf("%d",p),w++;
			else printf(",%d",p);
		}
	if(w==0)printf("no");
	putchar('\n');
}
int zhi(int p)
{
	int i,z=0;
	if(p==1)z=0;
	else if(p==2)z=1;
	else
	{
		for(i=2;i<=p;i++)
			if(p%i==0)break;
		if(p==i)z=1;
	}
	return z;
}
int hui(int p)
{
	int n=p,sum=0;
	while(n/10>0)
	{
		sum=sum*10+n%10;
		n/=10;
	}
	sum=sum*10+n;
	if(sum==p)return(1);
	else return(0);
}


int change(int num)
{
    int answer=0;
    while(num)
    {
              answer=answer*10+num%10;
              num=num/10;
    }
    return answer;
}
main()
{
      int m,n,i,j,a=0;
      scanf("%d %d",&m,&n);
      for(i=m;i<=n;i++)
      {
                       for(j=2;j<i;j++)
                       {
                                       if(i%j==0)
                                       break;
                       }
                          if(j==i)
                          {
                             if(i==change(i))
                             {
                                             a=a+1;
                                             if(a==1)
                                             printf("%d",i);
                                             else
                                             printf(",%d",i);
                             }
                          }
      }
      if(a==0)
      printf("no\n");
      getchar();
      getchar();

}


PrimeNumber(int n)
{int k,i,flag=0;
 k=sqrt(n);
 for(i=2;i<=k;i++)
	 if(n%i==0)break;
 if(i>k)flag=1;
 return flag;
}
LoopNumber(int n)
{
int a,b=0,c,flag=0;
a=n;
for(;a!=0;)
{
c=a%10;
a=a/10;
b=b*10+c;
}
if(b==n)flag=1;
  return flag;
}
main()
{int m,n,i,k=0,a[100],flag1,flag2;
 scanf("%d%d",&m,&n);
 for(i=m;i<=n;i++)
	{flag1=PrimeNumber(i);
	 flag2=LoopNumber(i);
	 if(flag1==1&&flag2==1){a[k]=i;k++;}
	}
 if(k>0)
	{printf("%d",a[0]);
	 for(i=1;i<k;i++)
		 printf(",%d",a[i]);
	}
 if(k==0)
	 printf("no");
}


int zhishu(int num){
	int n=0,i;
	for(i=1;i<=num;i++){
		if(num%i==0){
			n++;
		}
	}
	if(n==2){
		return 1;
	}else{
	    return 0;
	}
}
int huiwenshu(int num){
    int k=0,x=0;
	int i,sz[100];
	for(i=num;i>0;i/=10){
        sz[k]=i%10;
		k++;
	}
	for(i=0;i<k/2;i++){
		if(sz[i]==sz[k-1-i]){
			x++;
		}
	}
	if(x==k/2){
		return 1;
	}else{
		return 0;
	}
}
int main(){
	int m,n,i,t=1,k=1;
	scanf("%d %d",&m,&n);
	for(i=m;i<n+1;i++){
		if(zhishu(i)==1 && huiwenshu(i)==1){
			if(t){
				printf("%d",i);
				t=0;
				k=0;
			}else{
				printf(",%d",i);
			}
		}
	}
	if(k){
		printf("no");
	}
	return 0;
}


int huiwen(int a)
{
	int b[100],i,j,k;
	for(i=0;;)
	{
		if(a==0)break;
		else
		{
			b[i]=a%10;
			a=a/10;
			i++;
		}
	}
	for(j=0;j<i;j++)if(b[j]!=b[i-1-j])break;
	if(j==i)return(1);
	else return(0);
}
int sushu(int a)
{
	int i,j;
	for(i=2;i<a;i++)if(a%i==0)break;
	if(i==a)return(1);
	else return(0);
}
void main()
{
	int m,n,i,j,t1,t2;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		t1=huiwen(i);
		t2=sushu(i);
		if(t1==1&&t2==1)
		{printf("%d",i);break;}
	}
	if(i==n+1)printf("no");
	else for(j=i+1;j<=n;j++)
	{
		t1=huiwen(j);
		t2=sushu(j);
		if(t1==1&&t2==1)printf(",%d",j);
	}
}


int jiaohuan(int);
int ss(int);
int main(){
	int n,m,c=0,i,h[q];
	scanf("%d%d",&n,&m);
	for(i=n;i<=m;i++){
		if(jiaohuan(i)==i&&ss(i)){
			h[c]=i;
			c++;
		}
	}
	if(c==0)
		printf("no\n");
	else{
		for(i=0;i<c;i++){
			if(i==0)
				printf("%d",h[i]);
			else
				printf(",%d",h[i]);
		}
	    printf("\n");
	}

	return 0;
}

int jiaohuan(int a){
	int h[w],i,c=0;
	for(i=0;i<w;i++){
		h[i]=a%10;
		a=a/10;
		c++;
		if(a==0)
			break;
	}
	for(i=0;i<c;i++){
		a=a+h[i]*(int)pow(10,c-i-1);
	}
	return a;
}
int ss(int b){
	int i=2;
	while(b%i!=0){
		i++;
	}
	if(i==b)
	    return 1;
	else
		return 0;
}


void main()
{   int sushu(int k);
    int huiwen(int k);
    int n,m,i,a[100],h=0;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++)
    {    if((sushu(i)==1)&&(huiwen(i)==1))
        {  a[h]=i;h++;}
	}
    if(h==0)printf("no");
	else
	{   printf("%d",a[0]);
        for(i=1;i<h;i++)
			printf(",%d",a[i]);
	}
}
int sushu(int k)
{   int i,j=0,s;
    for(i=2;i<=sqrt(k);i++)
        if(k%i==0)j++;
    if(j==0)s=1;
    else s=0;
    return(s);
}
int huiwen(int k)
{   int i=0,j,s=k,p=0;
    int a[10];
    while(k!=0)
    {   a[i]=k%10;
        k=k/10;
        i++;
    }
    for(j=0;j<i;j++)
       p=p*10+a[j];
    if(p==s)return(1);
    else return(0);
}


int hui(int i,int k)
{
    if(i==0) return k;
    int m,n;
    m=i/10;
    n=k*10+i%10;
     return(hui(m,n));
}
int su(int n,int limit,int num)
{
    if(num>n-1) return 1;
    else  if(n%num==0) return 0;
    else return(su(n,n-1,num+1));
}

int main()
{
    int i,m,n,flag=0,limit;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++)
    {
       limit=sqrt(i)+1;
       if(hui(i,0)==i&&su(i,limit,2)){flag=1;printf("%d",i);break;}
    }
    for(++i;i<=n;i++)
    {
       if((hui(i,0)==i)&&su(i,limit,2)&&i!=323){printf(",%d",i);}
    }
    if(flag==0) printf("no");

    return 0;
}


int sushu(int n){
	int i;
	if(n%2==0) return 0;
	for(i=3;i<=sqrt(n);i+=2) if(n%i==0) return 0;
	return 1;
}
void main(){
	int i,x,y,m,n,k=0;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++){
		x=i;y=0;
		if(sushu(i)==0) continue;
		while(x>0){
			y=y*10+x%10;
			x/=10;
		}
		if(y==i){
			if(k++==0) printf("%d",i);
			else printf(",%d",i);
		}
	}
	if(k==0) printf("no");
}


int huiwen(int n)
{
	int k=0,a,b=n;
	while(b!=0)
	{
		a=b%10;
		k=k*10+a;
		b=b/10;
	}
	if(k==n)
		return 1;
	else
		return 0;
}
int sushu(int n)
{
	int i;
	if(n==2)
		return 1;
	else
	{
		for(i=2;i<=(n-1);i++)
		{
			if(n%i==0)
			return 0;
		}
		return 1;
	}
}
void main()
{
	int m,n;
	scanf("%d %d",&m,&n);
	int i,k=0;
	int s[1000];
	for(i=0;i<=(n-m);i++)
	{
		if((huiwen(m+i)==1)&&(sushu(m+i)==1))
		{
			s[k]=m+i;
			k=k+1;
		}
	}
	if(k==0)
		printf("no");
	else
	{
		printf("%d",s[0]);
		for(i=1;i<k;i++)
		{
			printf(",%d",s[i]);
		}
	}
}


void main()
{
	long int m,n;
	long int oho(int x);
	scanf("%d%d",&m,&n);
	long int i,j,k=0,save[20000],l,x,y=0;
	for(i=m;i<=n;i++)
	{
		if(i==1)
		{
			y++;
			continue;
		}
		else if(i==2)
		{
			save[k]=i;
			k++;
			y++;
		}
		else
		{
			for(j=2;j<=sqrt(i);j++)
			{
				if(i%j==0)break;
			}
			if(j>sqrt(i))
			{
				save[k]=i;
				k++;
			}
			else y++;
		}
	}
	long int r=0;
	for(l=0;l<k;l++)
	{
		if(oho(save[l])==save[l])
		{
			printf("%d",save[l]);
			break;
		}
		else r++;
	}
    if(r==k)printf("no");
	for(x=l+1;x<k;x++)
	{
		if(oho(save[x])==save[x])
		{
			printf(",%d",save[x]);
		}
	}
}
long int oho(int x)
{
	int r,c=0;
	while(x>=1)
	{
		r=x%10;
		x=x/10;
        c=c*10+r;
	}
	return(c);
}


char a[10];
int huiwen(int k);//????????
int sushu(int k);//???????
char convert(int k);

void main()
{

	int m,n,k,mark=0,mark1,mark2;//mark????m?n????????

	scanf("%d%d",&m,&n);
	for(k=m;k<=n;k++)
	{
		mark1=huiwen(k);
		mark2=sushu(k);
		if(mark1&&mark2)
		{
			if(mark==0)
			{
				printf("%d",k);
				mark=1;
			}
			else printf(",%d",k);
		}
	}
	if(mark==0)printf("no\n");
}
int huiwen(int k)
{
	int i,j,len_a;
	convert(k);

	len_a=strlen(a);
	for(i=0,j=len_a-1;i<j;i++,j--)
		if(a[i]!=a[j])break;
	if(i<j)return(0);
	else return(1);
}
int sushu(int k)
{
	int i;
	for(i=2;i<k;i++)
		if(k%i==0)break;
	if(i==k)return(1);
	else return(0);
}
char convert(int k)
{
	int i=0;
	do
	{
		a[i]=k%10+'0';
		k=k/10;
		i++;
	}while(k/10!=0);
	a[i]=k+'0';
}


int judge_p(int m)
{
	int i;
	for(i=2;i<m;i++)
	{
		if(!(m%i))
			break;
	}
	if(i==m)
		return 1;
	else
		return 0;
}
int judge_h(int m)
{
	int i,n=0,t=m;
	while(m)
	{
		n=n*10+m%10;
		m=(m-m%10)/10;
	}
	if(t==n)
		return 1;
	else
		return 0;
}
void main()
{
	int m,n,i,j=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
        if(judge_p(i)&&judge_h(i)&&j)
			printf(",%d",i);
		if(judge_p(i)&&judge_h(i)&&!j)
		{
			printf("%d",i);
			j++;
		}
	}
	if(!j)
		printf("no");
}


void main()
{
	int f(int i);
	int m,n,i,h=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(f(i)==1)
		{
			if(h==0)
			{
				printf("%d",i);
				h=1;
			}
			else
			{
				printf(",%d",i);
			}
		}
	}
	if(h==0)
		printf("no");
}
int f(int i)
{
	int j,t,sum,k;
	t=0;
	sum=0;
	k=i;
	for(j=2;j<i;j++)
	{
		if(i%j==0)
		{
			t=1;
			break;
		}
	}
	if(t==0)
	{
		do
		{
			sum=sum*10+i%10;
			i=i/10;
		}
		while(i!=0);
	  if(sum==k)
		return(1);
	}
	else
		return(0);
}


int f(int a,int b)
{ if(a==0)return(b);
  else return(f(a/10,b*10+a%10));
}
int g(int a)
{int i,j,t=1;
 j=sqrt(a);
 for(i=2;i<=j;i++)
	 if(a%i==0)t=0;
	 return(t);
}
void main()
{ int x,y,i,t=0;
  scanf("%d %d",&x,&y);
  for(i=x;i<=y;+i++)
  {if(f(i,0)==i&&g(i))
  {if(t==0)printf("%d",i);
  else printf(",%d",i);
  t=t+1;}}
  if(t==0)printf("no");
}


int check1(int i)
{
	int j,x=0;
	if(i==2) return 1;
	for(j=2;j<i;j++)
		 if(i%j==0) x++;
	if(x==0) return 1;
	else return 0;
}
int check2(int i)
{
	int x,j=0;
	x=i;
	while(i!=0)
	{
		j=j*10+i%10;
		i=i/10;
	}
	if(j==x) return 1;
	else return 0;
}
main()
{
	int m,n,i,j;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
		if(check1(i)&&check2(i)) {printf("%d",i);break;}
		else if(i==n) printf("no\n");
	for(j=i+1;j<=n;j++)
		if(check1(j)&&check2(j)) printf(",%d",j);
	printf("\n");
}


void main()
{
	int ce(int o);
	int hui(int a);
	int m,n,i,j=0,t[10];
	scanf("%d %d",&m,&n);
		for(i=m;i<=n;i++)
			if(ce(i)==1&&hui(i)==1)
			{t[j]=i;
			j++;
			}
	if(j==0)
		printf("no");
	else{

	for(i=0;i<j-1;i++)
		printf("%d,",t[i]);
	printf("%d",t[j-1]);
	}
}
int ce(int o)
{
	int k,t;
	k=sqrt(o);
	for(t=2;t<=k;t++)
		if(o%t==0)break;

	if(t>k)return(1);
	else return(0);
}
int hui(int a)
{
	int k=0,b[10],place,flag=1,i;
	if(a<=999)
		place=3;
	else if(a<=9999)
	    place=4;
	else if(a<=99999)
		place=5;
	else if(a<=999999)
		place=6;
	k=0;

	for(i=0;i<place;i++)
	{
		b[k]=a%10;
		a=(a-b[k])/10;
		k++;
	}
	for(i=0;i<k/2;i++)
		if(b[i]!=b[k-1-i])
		{
			flag=0;
			break;
		}
	if(flag==1)
		return(1);
	else return(0);
}


int a[10];
main()
{
	int sushu(int i);
	int huiwen(int i);

	int num,m,n,i;
	int flag=0;
	int c,d;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{c=sushu(i);
	 d=huiwen(i);
	 if(c==1&&d==1)
	 {flag++;
	  if(flag==1) printf("%d",i);
	  else printf(",%d",i);}}
	if(flag==0) printf("no");
}

int sushu(int i)
{
	int j;
	for(j=2;j<i;j++)
	{if(i%j==0)
	   {return 0;
	break;}}
	if(j==i) return 1;
}

int huiwen(int i)
{
	int j,k;
	for(j=0;;j++)
	{if(pow(10,j)>i) break;}
    for(k=0;k<j;k++)
	{a[j-1-k]=i%10;
	i=i/10;}
	for(k=0;k<j;k++)
	{if(a[k]!=a[j-1-k])
	{return 0;
	break;}}
	if(k==j) return 1;
}


void main()
{
	void sel(int x);
	int sus(int p);
	int hui(int q);
	int a[100],i,j,k,m,n,sing=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	if(sus(i)==1&&hui(i)==1)
	{printf("%d",i);break;}
	if(i==n+1)
		printf("no");
	for(i=i+1;i<=n;i++)
	 sel(i);
}
void sel(int x)
{
	int sus(int p);
	int hui(int q);
	if(sus(x)==1&&hui(x)==1)
	printf(",%d",x);
}
int sus(int p)
{
	int i,j,k,m,n;
	for(i=2;i<p;i++)
		if(p%i==0)
			break;
	if(i==p)
	return(1);
	else return(0);
}

int hui(int q)
{
	int i,j,k,m,n,b=0,a[1000],c[1000];
	for(i=0;;i++)
		if(pow(10,i)>q)
		{n=i;break;}				//q?n??//
	for(i=1;i<=n;i++)
		c[i]=pow(10,i);
	for(i=1;i<=n;i++)
		a[i]=(q%c[i])/(pow(10,i-1));
	for(i=1,j=n-1;i<=n,j>=0;i++,j--)
		b=b+a[i]*pow(10,j);
	if(q==b)
		return(1);
	else return(0);
}


int nu;
int f1(int m)
{
	int i,d=0;
	for (i=2;i<=sqrt(m);i++) if(m%i==0) {d=1;break;}
	if (d==0) return(0);
	else return(1);//1j 0z
}
int f2(int m)
{
	int mm=1,d=0,te;
	while (m/mm>=10) mm=mm*10;
	while (mm>=10)
	{
		if (m/mm!=m%10) {d=1;break;}
		m=m-m/mm*mm;
		m/=10;
		mm/=100;
	}
	if (d==0) return (0);
	else return (1);
}
void main ()
{
	int min,max,i;
	scanf ("%d%d",&min,&max);
	nu=0;
	for (i=min;i<=max;i++)	if (f1(i)==0&&f2(i)==0) {printf ("%d",i);nu=1;break;}
	for (i++;i<=max;i++) if (f1(i)==0&&f2(i)==0) {printf (",%d",i);}
	if (nu==0) printf ("no");
}


void main()
{
	int sushu(int x);
	int huiwen(int x);
	int m,n,i,j,f=0,a[100];
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(sushu(i)==1&&huiwen(i)==1)
		{
			a[f]=i;f++;
		}
	}
	if(f==0)printf("no\n");
	else
	{
		for(j=0;j<(f-1);j++)
		{
			printf("%d,",a[j]);
		}
		printf("%d",a[f-1]);
	}
}
int sushu(int x)
{
	int flag1,k,a;
	k=sqrt(x);
	for(a=2;a<=k;a++){if(x%a==0)break;}
	if(a>k){flag1=1;}
	else {flag1=0;}
	return(flag1);
}
int huiwen(int x)
{
	int a[9],d,j,b,c,k,e,y,sum=0,cha,flag2;
	d=9;
	k=pow(10,d);
	while((x/k)==0)
	{
		d--;
		k=pow(10,d);
	}
	for(j=0;j<=d;j++)
	{
		b=pow(10,j+1);
		c=pow(10,j);
		a[j]=(x%b-x%c)/c;
	}
	for(j=0;j<=d;j++)
	{
		e=pow(10,d-j);
		y=a[j]*e;
		sum=sum+y;
	}
	cha=x-sum;
	if(cha==0)flag2=1;
	else flag2=0;
	return (flag2);
}


int main()
{
    int m,n,i,j,k,digit,res=0,t,cnt1=0,cnt2=0;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++)
    {
        cnt1=0;
        t=(int)sqrt(i);
        for(j=2;j<=t;j++)
        {
            if(i%j==0)
                cnt1++;
        }
        if(cnt1==0)
        {
            k=i;
            res=0;
            while(k)
            {
                digit=k%10;
                res=res*10+digit;
                k/=10;
            }
            if(res==i)
            {
                if(cnt2==0)
                {
                    printf("%d",res);
                    cnt2++;
                }
                else
                {
                    printf(",%d",res);
                    cnt2++;
                }
            }
        }
    }
    if(cnt2==0)
    printf("no");
}


void main()
{
	int su(int x);
	int hui(int x);
	int m,n,i=0,x;
	scanf("%d %d",&m,&n);
	for(x=m;x<=n;x++)
		if(su(x)&&hui(x))
		{
			if(i!=0) printf(",");
			printf("%d",x);
			i++;
		}
		if(!i) printf("no");
}
int su(int x)
{
	int i,c=1;
	for(i=2;i<=sqrt(x);i++)
		if(x%i==0)
		{c=0;break;}
		if(c) return 1;
		else return 0;
}
int hui(int x)
{
	int a[100],t,i,k,c=1;
	t=log10(x);k=t;
	for(i=0;i<=t;i++)
	{
		a[i]=x/pow(10,k);
		x-=a[i]*pow(10,k);
		k--;
	}
	for(i=0;i<=t;i++)
		if(a[i]!=a[t-i])
		{c=0;break;}
				if(c) return 1;
		else return 0;
}


int main()
{
	int rev(long);
	int prime(long);
	long m,n,i;
	int first=1;
	scanf("%ld%ld",&m,&n);
    for (i=m;i<n+1;i++)
		if (rev(i) && prime(i))
		{
			if (!first) printf(",");
			printf("%ld",i);
			if (first) first=0;
		}
	if (first) printf("no");
	return 0;
}

int rev(long n)
{
	long a[10],i=0,j,flag=1;
	while (n>0)
	{
		a[i++]=n%10;
		n=n/10;
	}
//	for (j=0;j<i;j++) printf("%d",a[j]);
	for (j=0;j<i;j++)
		if (a[j]!=a[i-j-1])
		{
			flag=0;
			break;
		}
//	printf("%d\n",flag);
	if (flag) return 1;
	return 0;
}

int prime(long n)
{
	long x,h=sqrt(n),flag=1;
//	printf("%ld",h);
	for (x=2;x<=h;x++)
	{
//	printf("%ld",x);

		if (n%x==0)
		{
			flag=0;
			break;
		}
	}
	if (flag) return 1;
	return 0;
}


void main()
{int a,b,c;
int m,n,k=0;
int i;
int sushu(int x);
scanf("%d  %d",&m,&n);
i=m;
    for(;i<=n;i++)
	{  b=i;
	   c=0;
       while(b!=0)
	   {c=c*10+b%10;
	    b=b/10;
	   }
	   if((c==i)&&(sushu(c)==1))
{if(k==0){printf("%d",c);k=1;}
else printf(",%d",c);}
	  	}if(k==0)
printf("no");
}

int sushu(int x)
  {
	  int t=0;
	  int z;
        z=2;
	for(;z<=(x/2);z++)
	{if(x%z==0)break;
	 else if(z==(x/2))t=1;
	}
	return(t);
  }


void main()
{
int m,n,i,j=0;
int a[100];
scanf("%d%d",&m,&n);
for(i=0;i<=99;i++)a[i]=0;
int su(int a,int b);
int hui(int c,int d);
for(i=m;i<=n;i++)
{if(su(i,2)==1&&i==hui(i,0))a[j++]=i;
}
if(a[0]==0)printf("no");
else{ printf("%d",a[0]);
for(i=1;a[i]>0;i++)printf(",%d",a[i]);
}

}
int su(int a,int b)
{
if(b==a)return 1;
else if(a%b==0)return 0;
else return(su(a,b+1));
}
int hui(int c,int d)
{
if(c==0)return d;
else return(hui(c/10,d*10+c%10));

}


int sushu(int k)
{
	int o;
	for(o=2;o<=sqrt(k);o++) if(k%o==0) {o=0;break;}
	if(o!=0) o=1;
	return(o);
}
int huiwen(int k)
{
	int k2=0,o,x;
	x=k;
	while(x>=10)
	{
		o=x%10;
		k2=10*k2+o;
		x=x/10;
	}
	k2=10*k2+x;
	if(k==k2) o=1;
	else o=0;
	return(o);
}

void main()
{
	int sushu(int k);
	int huiwen(int k);
	int m,n,i,f=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(sushu(i))
			if(huiwen(i))
			{
				if(f==0) {printf("%d",i);f=1;}
				else printf(",%d",i);
			}
	}
	if(f==0) printf("no");
	printf("\n");
}


main()
{
      int judge(int a,int b,int c);
      int sushu(int n);
      int M,N,o,i,l,L,K,flag,n;
      scanf("%d %d",&M,&N);
      flag=0;
      for(n=M;n<=N;n++)
     {o=1;
      for(i=1;;i++)
         {o=o*10;
          if(o>n)
           {l=i;
            break;}}
      if(l%2==0)
        L=l/2;
      else
        L=(l-1)/2;
      if(sushu(n)&&judge(n,L,l))
       {printf("%d",n);
        K=n+1;
        flag=1;
        break;}}
      for(n=K;n<=N;n++)
     {o=1;
      for(i=1;;i++)
         {o=o*10;
          if(o>n)
           {l=i;
            break;}}
      if(l%2==0)
        L=l/2;
      else
        L=(l-1)/2;
      if(sushu(n)&&judge(n,L,l))
       {printf(",%d",n);
        flag=flag+1;}}
      if(flag==0)
        printf("no\n");
}
int sushu(int n)
{
    int i;
    for(i=2;i<=sqrt(n);i++)
      if(n%i==0)
        return 0;
    return 1;
}
int judge(int a,int b,int c)
{
     int i,x,y,o;
     i=x=y=o=1;
     if(b==1)
     {for(i=1;i<=c-1;i++)
        o=o*10;
      if(a/o==a%10)
       return 1;
      else
       return 0;}
     else
      {for(i=1;i<=b-1;i++)
         x=x*10;
       for(i=1;i<=c-b;i++)
         y=y*10;
       if((a/y)%10==(a/x)%10)
         if(judge(a,b-1,c))
           return 1;
         else
           return 0;
       else
         return 0;}
}


int huiwen(int a)
{
	int k,n=0,m;
	m=a;
	while(m!=0)
	{
		k=m%10;
		n=n*10+k;
		m=m/10;
	}
	if(n==a)
		return(1);
	else
		return(0);
}
int sushu(int a)
{
	int i;
	float l=sqrt(a);
	for(i=2;i<=l;i++)
	{
		if(a%i==0)
			break;
	}
	if(i>l)
		return(1);
	else
		return(0);
}

void main()
{
	int m,n;
	scanf("%d %d",&m,&n);
	int a=m;
	while((huiwen(a)==0||sushu(a)==0)&&a<=n)
		a++;
	if(a>n)
		printf("no");
	else
	{
		printf("%d",a);
		for(a++;a<=n;a++)
		{
			if(huiwen(a)==1&&sushu(a)==1)
			printf(",%d",a);
		}
	}
}


int sushu(int x)
{
	int i,t=0;
	if (x%2!=0)
	{
		for (i=3;i<=sqrt(x);i=i+2)
			if (x%i==0)
				break;
		if (i>sqrt(x))
			return(1);
		else return(0);
	}
	else return(0);
}
int huiwen(int x)
{
	int n=0,m=x;
	while(m!=0)
	{
		n=n*10+m%10;
		m=m/10;
	}
	if (n==x)
		return(1);
	else return(0);
}
void main()
{
	int m,n,i,t=0;
	scanf("%d%d",&m,&n);
	for (i=m;i<=n;i++)
		if (sushu(i)&&huiwen(i)&&t==0)
		{
			printf("%d",i);
			t=1;
		}
		else if (sushu(i)&&huiwen(i))
			printf(",%d",i);
	if (t==0)
		printf("no");
	printf("\n");
}


void main()
{
int sushu(int x);
int circle(int y);
int i,j,k,n,m,t;
int a[1000]={0};
scanf("%d %d",&n,&m);
for(i=n,j=0;i<=m;i++)
  if(sushu(i)==0&&circle(i)==0)
	  {a[j]=i;
	  j++;}
  if(j==0)
	  printf("no");
  else {
for(t=0,k=0;t<=j;t++)
 if(a[t]!=0&&a[t]!='\0')
	{ printf("%d",a[t]);
       k++;
      if(k<j)
		  printf(",");}
}
}

int sushu(int x)
{
int i,j,k,flag;
flag=0;
for(i=2;i<x;i++)
  if(x%i==0)
  {   flag=1;
	  break;}
  return(flag);
}

int circle(int y)
{
int i,j,k,flag;
flag=0;
int a[100];
for(i=0;y>0;i++)
{a[i]=y%10;
y=y/10;}
for(j=0;j<=(i-1)/2;j++)
   if(a[j]!=a[i-1-j])
   {
   flag=1;
   break;}
return(flag);
}


int s(int a)
{
int i,k,j;
k=sqrt(a);
for(i=2;i<=k;i++)
  if(a%i==0) break;
if(i>k) j=1;
else j=0;
return(j);
}
int h(int m)
{
int k,temp,n=0;
temp=m;
 while(temp>0)
  { k=temp%10;
  n=n*10+k;
  temp=temp/10;}
if(m==n) k=1;
else k=0;
return(k);
}
void main()
{
int m,n,x,a[305],i=0,j;
scanf("%d %d",&m,&n);
for(x=m;x<=n;x++)
 {if(s(x)==1&&h(x)==1) {a[i]=x;i++;}
 else continue;}
if(i==0) printf("no");
else
  {printf("%d",a[0]);
  for(j=1;j<i;j++)
    printf(",%d",a[j]);}
}


int pp(int a){
 int i;
for(i=2;i<a/2+1;i++)
if(a%i==0){return 0;break;}
if(i==a/2+1)return 1;}

int ppp(int a,int b){
int m[10];
int i;
for(i=0;i<b;i++){
 m[i]=a%10;
 a=a/10;}
for(i=0;i<=b/2;i++){
 if(m[i]!=m[b-i-1])break;}
if(i==b/2+1)return 1;
else return 0;}

int qq(int a){
 int k;
 for(k=0;a>0;k++)
  a=a/10;
 return k;}

void main(){

 int m,n,i,j,k=0,b,c,v;

 scanf("%d %d",&m,&n);

 for(i=m;i<=n;i++){

  b=pp(i);
  if(b){j=qq(i);
  c=ppp(i,j);}

  if(b*c){printf("%d",i);k=1;v=i;break;}}

if(k)
for(i=v+1;i<=n;i++){

  b=pp(i);
  if(b){j=qq(i);
  c=ppp(i,j);}

  if(b*c){printf(",%d",i);k=1;}}

 if(k==0)printf("no");

   }


int sushu(int a);
int huiwenshu(int num);
void main()
{
	int m,n,a[10000],k=0,i;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
		if ((sushu(i)==1)&&(huiwenshu(i)==1))
		{a[k]=i;k++;}

	if(k==0) printf("no");
	else
	{
		printf("%d",a[0]);
		for(i=1;i<k;i++)
		printf(",%d",a[i]);
	}
}

int sushu(int a)
{
	int k,i;
	k=sqrt(a);
	for(i=2;i<=k;i++)
		if(a%i==0) break;
	if(i<=k) return 0;
	else return 1;
}

int huiwenshu(int   num)
{
        int   over   =   0;
        int   quotient   =   0;

        quotient   =   num;
        while(1)
        {
                over   =   over*10   +   quotient%10   ;
                quotient=quotient/10;
                if   (   quotient   ==     0   )
                        break;
        }

        if   (num   ==   over   )
                return   1;
        else
                return   0;
}


int ifhuiwen (int a)
{
	int flag,i,t,a_;
	a_=a;
	for (i=10,t=0;a_!=0;)
	{
		t=t*10+a_%i;
		a_=a_/i;
	}
	if (t==a)
		flag=1;
	return flag;
}

int ifsushu (int a)
{
	int flag=1,i;
	for (i=2;i<a/2+1;i++)
	{
		if (a%i==0)
			flag=0;
	}
	return flag;
}

void main ()
{
	int min, max,i,flag=0;
	scanf ("%d %d",&min,&max);
	for (i=min;i<=max;i++)
	{
		if (ifhuiwen(i)==1 && ifsushu(i)==1 && flag==0)
		{
			printf ("%d",i);flag=i;
		}
		if (ifhuiwen(i)==1 && ifsushu(i)==1 && i!=flag)
			printf (",%d",i);
	}
	if (flag==0)
		printf ("no");
}


void main()
{
	int judgep(int i);
	int judgeh(int i);
	int m,n,i,flag1,flag2,flag;
	scanf("%d%d",&m,&n);
	for (i=m,flag1=0,flag2=0,flag=0;i<n+1;i++)
	{
		flag1=judgep(i);
		flag2=judgeh(i);
		if (!flag1)
			continue;
		else if (flag1&&flag2&&(flag==0))
		{
			printf("%d",i);
			flag=1;
		}
		else if (flag1&&flag2&&flag)
			printf(",%d",i);
	}
	if (!flag)
		printf("no");
	printf("\n");
}

int judgep(int i)
{
	int j,flag,temp;
	for (j=2,flag=0;j<i;j++)
	{
		if (i%j==0)
		{
			flag=1;
			break;
		}
	}
	if (flag)
		temp=0;
	else
		temp=1;
	return(temp);
}

int judgeh(int i)
{
	int temp,s,t;
	t=i;
	s=0;
	while(i/10!=0)
	{
		s=(s+i%10)*10;
		i=i/10;
	}
	s=s+i;
	if (t==s)
		temp=1;
	else
		temp=0;
	return(temp);
}


int hui(int x)
{
	int i, j;
	char a[10];
	sprintf(a,"%d",x);
	for(i=0, j=strlen(a)-1;i<j;i++, j--)
	{
		if(a[i] != a[j])
			return 0;
	}
	return 1;
}

int su(int x)
{
	int i;
	for(i=2;i<=sqrt(x);i++)
	{
		if(x%i==0)
			return 0;
	}
	return 1;
}

int main()
{
	int m, n, no=0;
	scanf("%d%d", &m, &n);
	for(m;m<=n;m++)
	{
		if((no!=0) && (hui(m)==1 && su(m)==1))
			printf(",%d",m);
		if((no==0) && (hui(m)==1 && su(m)==1))
		{
			printf("%d",m);
			no++;
		}
	}
	if(no==0)
		printf("no");
	return 0;
}


int sushu(int n){
    int i,m=1;
	for(i=2;i<n;i++){
		if(n%i==0){
			m=0;
		    break;
		}
	}
	return m;
}
int huiwen(int n){
    int m=0, t=n, z=0;
	while(t>0){
	      m=m*10+t%10;
		  t=t/10;
	}
if(m==n) z=1;
return z;
}
void main(){
     int m, n, i,j=0;
	 scanf("%d%d",&m,&n);
	 for(i=m;i<n+1;i++){
		 if(sushu(i)&&huiwen(i)){
	       j++;
		   if(j==1) printf("%d",i);
		   else if(j>1) printf(",%d",i);
		 }
	 }
	 if(j==0) printf("no");
}


int su(long x)
{
	int i,j=0;
	for (i=2;i<=sqrt(x);i++)
		if (x%i==0) {return(0); j=1; break;}
	if (j==0) return(1);
}

int hui(long x)
{
	int i,j;
	long y=0,p;
	p=x;
	while (x>0)
	{
      y=(10*y+x%10);
	  x=x/10;
	}
	if (p==y) return(1);
	 else return(0);
}

void main()
{
	long a,b;
	int i,j,sum=0,s[1000]={0};
	scanf("%d%d",&a,&b);
	for (i=a;i<=b;i++)
	{
		if (hui(i)==1&&su(i)==1)
		{
			sum++;
			s[sum]=i;
		}
	}
	if (sum==0) printf("no\n");
	else
	{
		for (i=1;i<sum;i++)
			printf("%ld,",s[i]);
		printf("%ld\n",s[sum]);
	}
}


int huiwen(int n);
int sushu(int n);

int main()
{
	int m,n;
	scanf("%d%d",&m,&n);
    int first=1,flag=1;
	for(int j=m;j<=n;j++)
	{
		if(sushu(j)&&huiwen(j))
		{
			if(first==1)
			{
				printf("%d",j);
				first=0;
			}
			else
			{
				printf(",%d",j);
			}
			flag=0;
		}
	}
	if(flag==1)
	{
		printf("no");
	}
	return 0;
}
int huiwen(int n)
{
    int temp, s=0;
    temp=n;
    while(n>0)
	{
        s=s*10+(n%10);
        n=n/10;
    }
    if(s==temp)
        return 1;
    else
        return 0;
}
int sushu(int n)
{
    int i;
    for(i=2;i<n;i++)
        if (n%i==0)
            return 0;
    return 1;
}


void main()
{
	int hui(int i);
    int su(int i);
int m,n,i,j,k,l;
scanf("%d %d",&m,&n);
for(i=n;i>=m;i--)
{
	if(hui(i)==1&&su(i)==1)    break;
}
for(j=m;j<i;j++)
{
	if(hui(j)==1&&su(j)==1)    printf("%d,",j);
}
if(i==m-1)    printf("no");
else printf("%d",i);
}
 int hui(int i)
 {
	 int m=0,j,temp;
	 temp=i;
	 while(temp!=0)
	 {
		 j=temp%10;
		 m=m*10+j;
         temp=temp/10;
     }
     if(m==i) return(1);
	 else return(0);
 }
  int su(int i)
  {
	  int a,s,d;
	  a=sqrt(i);
      for(s=2;s<=a;s++)
	  {
		  if(i%s==0)  break;
	  }
       if(i%s==0)   return(0);
	   else return(1);
  }


int prime(int x)
{
	int q,i,flag=1;
	q=sqrt(x);
	for(i=2;i<=q;i++)
	{
		if(x/i*i==x)
		{
			flag=0;
			break;
		}
	}
	return flag;
}
int hw(int x)
{
	int a,b,c=0;
	a=x;
	b=x;
	while(b/10>0)
	{
		c=c*10+b%10;
		b=b/10;
	}
	c=c*10+b;
	if(c==a) return 1;
	else return 0;
}
int main()
{
	int m,n,i,count=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(prime(i)==1&&hw(i)==1)
		{
			count++;
			if(count>1) printf(",");
			printf("%d",i);
		}
	}
	if(count==0)
		printf("no\n");
	else
		printf("\n");
	return 0;
}


void main()
{
	int m,n;
	int i,j,t,k,r[100]={0},tag,count=0,s=0,sub,x,min,minin,temp2,y;
	float temp;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{

		tag=1;
		temp=sqrt(i);
		for(j=2;j<=temp;j++)
		{
			if(i%j==0)
			{
				tag=0;
                break;
			}
		}
		if(tag==1)
		{

			t=i;
			sub=0;
			s=0;
			while(t!=0)
			{
				t=t/10;
				sub++;
			}
			y=i;
			for(k=0;k<sub;k++)
			{
				x=y%10;
				s=s*10+x;
				y=y/10;

			}

			if(s==i)
			{
				r[count]=i;
				count++;
			}
		}
	}
	for(i=0;i<count;i++)
	{
		min=r[i];
		minin=i;
		for(j=i;j<count;j++)
		{
			if(r[j]<min)
			{
				minin=j;
				min=r[minin];
			}
		}
		if(min!=r[i])
		{
			temp2=r[i];
			r[i]=r[minin];
			r[minin]=temp2;
		}
	}
	if(count==0)
		printf("no\n");
	else
	{
	for(i=0;i<count-1;i++)
	  printf("%d,",r[i]);
	printf("%d\n",r[i]);
	}
}


int p(int a);
int t(int a,int i);
int huiwen(int a);
int sushu(int a);
int p(int a)
{
	int i=1;
	while(a>0)
	{
		i*=10;
		a--;
	}
	return i;
}

int t(int a,int i)
{
	int n=log10(a);
	return (a%p(i))/p(i-1);
}
int huiwen(int a)
{
	int n=log10(a);//n+1??
	int i;
	for(i=1;i<=(n+1)/2+1;i++)
	{
		if(t(a,i)!=t(a,n+2-i))
			return 0;
	}
	return 1;
}

int sushu(int a)
{
	int i;
	for(i=2;i<=sqrt(a);i++)
	{
		if(a%i==0)return 0;
	}
	return 1;
}

void main()
{
	int max,min;
	int i,index=0;
	int tempa=p(2);
	int tempb=t(12345,4);
	int temp=huiwen(101);
	int out[100];
	scanf("%d %d",&min,&max);
	for(i=min;i<=max;i++)
	{
		if(sushu(i)&&huiwen(i)){
			out[index]=i;
			index++;
		}
	}
	if(index==0)printf("no");
	else{
		for(i=0;i<index;i++){
			if(i!=index-1)printf("%d,",out[i]);
			else printf("%d",out[i]);
		}
	}
}


int isprime(int n)
{
    int i;
    if (n % 2 == 0)
        return 0;
    for (i = 3; (i * i) <= n; i+=2)
    {
        if (n % i == 0)
            return 0;
    }
    return 1;
}

int ishuiwen(int n)
{
    int h = 0, m = n;
    while (m > 0)
    {
        h = h * 10 + m % 10;
        m /= 10;
    }
    return (h == n);
}

int main()
{
    int count = 0, i, m, n;
    scanf("%d%d", &m, &n);
    for (i=m; i<=n; i++)
    {
        if (isprime(i) && ishuiwen(i))
        {
            count++;
            if (count == 1)
                printf("%d", i);
            else
                printf(",%d",i);
        }
    }
    if (count == 0)
        printf("no");
    return 0;
}


int isreverse(int num)
{
	int num_r=0;
	int __num=num;
	while (num!=0)
	{
		num_r=num_r*10+num%10;
		num/=10;
	}
	if (num_r==__num)
		return 1;
	else
		return 0;
}
void getprime(int prime[])
{
	prime[0]=0;
	prime[1]=0;
	int i, j;
	for (i=2; i<LIMIT; i++)
		prime[i]=1;
	for (i=2; i<LIMIT; i++)
	{
		if (prime[i])
		{
			for (j=i*i; j<LIMIT; j+=i)
				prime[j]=0;
		}
	}
}
void main()
{
	int i,flag=1;
	int prime[LIMIT];
	getprime(prime);
//	for (i=0; i<LIMIT; i++)
//	{
//		if (prime[i])
//			printf("%d ", i);
//	}
	int m,n;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(prime[i]&&isreverse(i)&&flag)
		{
			printf("%d",i);
			flag=0;
		}
		else if(prime[i]&&isreverse(i))
			printf(",%d",i);
	}
	if(flag==1)
		printf("no");

}


int prime(int x)
{
	int flag=1,i;
	for(i=2;i<x/2&&flag==1;i++)
		if(x%i==0) flag=0;
	return(flag);
}
int huiwen(int x)
{
	int flag=1,i,k;
    int digit[9];
    for(k=0;x!=0;k++)
	{
        digit[k]=x%10;
        x/=10;
	}
    k=k-1;
    for(i=0;i<k;i++,k--)
        if(digit[i]!=digit[k]) break;
    if(i<k) flag=0;
	return(flag);
}
void main()
{
	int m,n,i,j;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
		if(prime(i)!=0&&huiwen(i)!=0)
		{printf("%d",i);break;}
	if(i>n) printf("no");
	for(j=i+2;j<=n;j=j+2)
		if(prime(j)!=0&&huiwen(j)!=0)
		printf(",%d",j);
}


int prime(int x)
{   int flag=0;
if(x==1)
return(1);
else  if(x==2||x==3)
		return(0);
	else
	{
		for(int i=2;i<x;i++)
		{
			if(x%i==0)
			{
				flag=1;
				break;
			}
		}
		if(flag==0)
			return (0);
		else
			return (1);
	}
}
int main()
{
	int n,i,m,j,num=0,b[100];
	cin>>n>>m;
	for(i=n;i<=m;i++)
	{   int a[10],count=0,flag=0,l;
	l=i;
	while(l>0)
	{
       a[count++]=l%10;
	   l=l/10;
	   }
	for(j=0;j<count;j++)
	{
		if(a[j]!=a[count-j-1])
		{
			flag=1;
			break;
		}

	}
	if(flag==0&&prime(i)==0)
	{
		b[num++]=i;
	}
	}
	if(num==0)
		cout<<"no"<<endl;
	else
	{
		for(i=0;i<num;i++)
		{
			if(i==num-1)
				cout<<b[i]<<endl;
			else
				cout<<b[i]<<",";
		}
	}
	return 0;
}


void main()
{
	int reverse(int t);
	int prime(int t);
	int m,n,t,k=0,rev,f=0;
	int a[100000],*p;
	p=a;
	scanf("%d%d",&m,&n);
	for(t=m;t<=n;t++)
	{
		rev=reverse(t);
		if(t==rev)
		{
			f=prime(t);
			if(f==1)
			{
				*p=t;
				p++;
				k++;

			}
		}

	}

	if(p>a)
	{
	for(p=a;p<a+k-1;p++)
			printf("%d,",*p);
		printf("%d",*p);
	}
	else
		printf("no\n");

}
int reverse(int t)
{
	int r=0,b[100000],*q,rev;

	for(q=b;t>=1;q++,r++)
	{
		*q=t%10;
		t=t/10;
	}
	q=b;
	for(rev=0;q<b+r;q++)
	{
		rev=rev*10+*q;
	}
	return rev;
}

int prime(int t)
{
	int k,i;
	k=sqrt(t);
	for(i=2;i<=k;i++)
	{
		if(t%i==0)
			break;
	}
	if(i>k) return 1;
	else return 0;

}


int huiwen(int a)
{
	int b=0,t;
	t=a;
	while(a!=0)
	{
		b=b*10+a%10;
		a/=10;
	}
	if(t==b) return(1);
	else return(0);
}
int sushu(int a)
{
	int i;
	if(a==2) return(1);
	for(i=2;i<sqrt(a)+1;i++)
	{
		if(a%i==0) return(0);
	}
	return(1);
}
void main()
{
	int n,m,t=0,k,i;
	scanf("%d%d",&m,&n);
	for(k=m;k<=n;k++)
	{
		if(huiwen(k)==1&&sushu(k)==1)
		{
			printf("%d",k);
			t++;
			break;
		}
	}
	for(i=k+1;i<=n;i++)
	{
		if(huiwen(i)==1&&sushu(i)==1)
		{
			printf(",%d",i);
			t++;
		}
	}
	if(t==0) printf("no");
}


int lenth(int a)
{
	int n=0;
	while(a/10>0)
	{
		n=n+1;
		a=a/10;
	}
	return n;
}
int nixu(int a,int n)
{
	int z,m,i;
	if(a<10) z=a;
	else
	{
      m=a%10;
	  for(i=1;i<=n;i++)
		  m=m*10;
	  z=m+nixu(a/10,n-1);
	}
	return z;
}
int huiwen(int a)
{
    int z,m;
	m=nixu(a,lenth(a));
	if(m==a) z=1;
	else z=0;
	return z;
}
int sushu(int a)
{
	int i,z;
	for(i=2;i<a;i++)
		if(a%i==0) {z=0;break;}
	if(i==a) z=1;
	return z;
}
void main()
{
	int a,b,i,s=0;
	scanf("%d%d",&a,&b);
	if(a>b)
	{
		for(i=b;i<=a;i++)
			if(huiwen(i)&&sushu(i)) {s=s+1;printf("%d",i);break;}

		for(i=i+1;i<=a;i++)
            if(huiwen(i)&&sushu(i)) {s=s+1;printf(",%d",i);}
		if(s==0) printf("no");
	}
	else
	{
		for(i=a;i<=b;i++)
			if(huiwen(i)&&sushu(i)) {s=s+1;printf("%d",i);break;}
		for(i=i+1;i<=b;i++)
            if(huiwen(i)&&sushu(i)) {s=s+1;printf(",%d",i);}
		if(s==0) printf("no");
	}
}


void main()
{
	int m,n,i,temp,j,k=0,x=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		temp=i;
		k=0;
		while(temp!=0)
		{  j=temp%10;
		   k=k*10+j;
		   temp=temp/10;
		}
		if(k==i)
		{
		    j=2;
			while(j<i)
			 {if((i%j)==0) break;j++; }
			if(j>=i)
			{
				if(x==0) printf("%d",i);
				else printf(",%d",i);
			    x++;
			}
		}
	}
	if(x==0) printf("no");
}


int huiwen(int m,int n)
{
	if(m==0)return (n);
	else return(huiwen(m/10,n*10+m%10));
}
int sushu(int n)
{
	int i;
	for(i=2;i<=sqrt(n);i++)
		if(n%i==0)break;
	if(i>sqrt(n))return (1);
	else return (0);
}
int main()
{
	int m,n,i,j;
	scanf("%d%d",&m,&n);
	for(i=m,j=0;i<=n;i++)
	{if(i==huiwen(i,0)&& sushu(i))
	{j++;if(j>1)printf(",%d",i);
	     else if(j==1)printf("%d",i);
	}
	}
	if(j==0)printf("no");
	return (0);
}


void main()
{int m,n;
 int t[100]={0};

 int i;
 int j=0;
 int ifhw(int num);
 int ifs(int num);
 scanf("%d%d",&m,&n);
 for(i=m;i<=n;i++)
 { if (ifhw(i))
	 if (ifs(i))
	  {t[j]=i;
	  j++;}}

 j--;
 if(t[0]==0)
  printf("no");
  else
  {for(i=0;i<j;i++)
   printf("%d,",t[i]);
   printf("%d\n",t[j]);}
}

int ifhw(int num)
{int digit[10];
 int i=0;
 int n;
 while(num>0)
  {digit[i]=num-num/10*10;
   i++;
   num=num/10;}
   n=i;
 for(i=0;i<n/2;i++)
  {if(digit[i]!=digit[n-i-1])
	{return(0);
	break;}}
}

int ifs(int num)
{int i;
 for(i=2;i<num;i++)
 {if(num%i==0)
  {return(0);
  break;}}
}


void main()
{
	int huiwen (int a);
	int sushu (int t);
	int m,n,i,l=0,t;
	scanf("%d %d",&m,&n);

	for (i=m;i<=n;i++)
	{
		if ((huiwen (i))==1)
		{	if ((sushu (i))==1)
		      {printf("%d",i);
		       l++;
		        break;}
		}
	}

	if (l==0)
		printf("no");

	for (t=i+1;t<=n;t++)
	{
		if ((huiwen (t))==1)
			if ((sushu (t))==1)
		      printf(",%d",t);

	}
}

    int huiwen (int a)
	{   int c=0,temp=a;
	    while (temp>0)
		{  c=c*10+temp%10;
		  temp=temp/10;}
			if (a==c)
			return (1);
		else
			return(0);
	}
	int sushu(int t)
	{   int i;
	   for (i=2;i<=sqrt(t);i++)
		   if (t%i==0)
			   break;
		   if (i>sqrt(t))
			   return(1);
		   else
			   return(0);
	}


int checkp(int n)
{
	int i;
	if(n%2==0)
		if(n==2)
			return 1;
		else
			return 0;
	for(i=3;i*i<=n;i=i+2)
		if(n%i==0)
			return 0;
	return 1;
}
int checkr(int n)
{
	int a=0,b;
	b=n;
	while(n/10!=0)
	{
		a=a*10+n%10;
		n=n/10;
	}
	a=a*10+n;
	if(a==b)
		return 1;
	else
		return 0;
}
main()
{
	int m,n,i,j,t=0;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;++i)
		if(checkp(i)&&checkr(i))
		{
			printf("%d",i);
			t=1;
			break;
		}
	if(t==0)
		printf("no");
	else
		for(j=i+1;j<=n;++j)
			if(checkp(j)&&checkr(j))
				printf(",%d",j);
}


int f(int m)
{
    int d=0;
    while(m!=0)
    {
    d=d*10+m%10;
    m=m/10;
    }
    return d;
}
int g(int n)
{
    int i,m=0;
    for(i=2;i<n;i++)
    {
      if(n%i==0)
      break;
    }
    if(i==n)
    m=1;
    return m;
}
main()
{
      int a,b,i,count=0;
      scanf("%d %d",&a,&b);
      for(i=a;i<=b;i++)
      {
       if(f(i)==i&&g(i)==1)
       {count++;
         if(count==1)
         printf("%d",i);
         else
         printf(",%d",i);
       }
      }
      if(count==0)
      printf("no");
      getchar();
      getchar();
      return 0;
      }


int main()
{
	int m,n,i,j,r=0,x,y,z,k;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{ k=(int)(sqrt(i));
	    for(j=2;j<=k;j++)
		{ if(i%j==0)
		     break;
		}
		if(j>k)
		{	x=i;
		    z=i;
			y=0;
		    do{ x=z%10;
				z=z/10;

			    y=10*y+x;
			}while(z!=0);
			if(y==i)
			{   r=r+1;
			   if(r==1) printf("%d",y);
               else printf(",%d",y);
			}
		}
		else continue;
	}
	if(r==0)
		printf("no");
	return 0;
}


long int prime(long int i)
{
    long int j,f=1;
	for(j=2;j*j<=i;j++)
		if(i%j==0)
		{
			f=0;
			break;
		}
	return f;

}

long int hw(long int i)
{
	int r=i,j=0;
	for(;;)
	{
		j=j*10+i%10;
		i=i/10;
		if(i==0)
			break;

	}
	if(j==r)
		return 1;
	else
		return 0;
}

void main()
{
	long int m,n,i,j;
	scanf("%ld %ld",&m,&n);

	for(i=m,j=0;i<=n;i++)
	{
		if(hw(i)==1&&prime(i)==1)
		{
			j++;

			if(j!=1)
				printf(",");
			printf("%ld",i);

		}
	}
	if(j==0)
		printf("no\n");

}


// 2_4.cpp : Defines the entry point for the console application.
//

int prime(int i)
{
	int sign = 0;
	for(int j = 2 ; j < i ; j ++)
	{
		if(i % j == 0 && j != i)
		{
			sign = 1;
			break;
		}
	}
	if(sign == 1)
		return 0;
	else
		return 1;
}
int huiwen(int i)
{
	int temp = i;
	int b = 0 ;
	while(temp > 0)
	{
		int a = temp % 10 ;
		b = b * 10 + a ;
		temp = temp / 10 ;
	}
	if(i == b)
		return 1;
	else
		return 0;

}

int main(int argc, char* argv[])
{
	int m,n;
	cin >> m >> n;
	int count = 0;
	for(int i = m ; i <= n ; i ++)
	{
		if(prime(i) && huiwen(i))
		{
			count ++ ;
			if(count == 1)
				cout<<i;
			else
				cout <<","<<i;
		}
	}
	if(count == 0)
		cout<<"no"<<endl;
	return 0;
}


int main()
{
	int huiwen(int x);
	int sushu(int x);
    int i,m,n,k=0,j;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(huiwen(i)==1&&sushu(i)==1)
		{k++;}
	}
	if(k==0) printf("no\n");
	else if(k!=1)
	{
		j=0;
		for(i=m;j!=k-1;i++)
		{
		if(huiwen(i)==1&&sushu(i)==1)
		{j++; printf("%d,",i);}
		}
		for(;i<=n;i++)
		{
        if(huiwen(i)==1&&sushu(i)==1)
		{printf("%d\n",i);break;}
		}
	}
	else
	{
        for(i=m;i<=n;i++)
		{
        if(huiwen(i)==1&&sushu(i)==1)
		{printf("%d\n",i);break;}
		}
	}

}

int huiwen(int x)
{
	int t=0;
	int y=x;
	while(y!=0)
	{
		t=t*10+y%10;
		y=y/10;
	}
	if(t==x) return(1);
	else return(0);
}

int sushu(int x)
{
	int i,j;
	if(x==1) return(0);
	else if(x==2) return(1);
	else
	{
	for(i=2;i<=x;i++)
	{
		if(x%i==0) {j=i;break;}
	}
	if(j==x) return(1);
	else return(0);
    }
}


int primejud(int n){
int i;
for(i=2;i<n/2;i++)
if(n%i==0)
break;
if(i>=n/2) return 1;
else return 0;}
int huiwenjud(int n){
int i,c,a=log10(n),b[10];
for(i=0;i<=a;i++){
b[i]=n/pow(10,a-i);
n=n%((int)pow(10,a-i));
}
c=(a+1)/2;
for(i=0;i<c;i++)
if(b[i]!=b[a-i])
break;
if(i>=c) return 1;
else return 0;
}
int main(){
	int a,b,i,j=0,num[100]={0};
	scanf("%d %d",&a,&b);
	for(i=a;i<=b;i++)
		if(primejud(i)&&huiwenjud(i))
		num[j++]=i;
if(j==0) printf("no");
else{
		for(i=0;i<j-1;i++)
printf("%d,",num[i]);
		printf("%d",num[j-1]);}
return 0;}


void main()
{
	int huiwen(int num);
	int zhishu(int num);
	int m,n,i,flag=0;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(huiwen(i)==1&&zhishu(i)==1)
		{
			printf("%d",i);
			flag=1;
			break;
		}
	}
	i=i+1;
	if(flag==1)
	{
		for(;i<=n;i++)
		{
			if(huiwen(i)==1&&zhishu(i)==1)
			{
				printf(",%d",i);
			}
		}
	}
	else printf("no\n");
}
int huiwen(int num)
{
	int n=0,m;
	m=num;
	while(m!=0)
	{
		n=n*10+m%10;
		m=m/10;
	}
	if(n==num)return 1;
	else return 0;
}
int zhishu(int num)
{
	int i;
	if(num%2==0) return 0;
	else
	{
		for(i=3;i<=num/2;i=i+2)
			if(num%i==0)
			{
				return 0;
				break;
			}
	}
	return 1;
}


int su(int i)
{
    int z=1;
    for (int k=2;k<=sqrt(i);k++)
    if(i%k==0)
    z=0;
    return z;
}

int hui(int i)
{
         int a[100];
         int j=0,p=1;
         while(i>0)
         {
                 a[j]=i%10;
                 i=i/10;
                 j++;
         }
         for(int k=0;k<j/2;k++)
         {
                 if(a[k]!=a[j-1-k])
                 {

                                   p=0;
                                    break;
                 }
         }
         return p;
}
int main()
{
     int m,n;
     scanf("%d %d",&m,&n);
     int i;
     int b[100];
     int k=0;
     for(i=m;i<=n;i++)
     {
                       if(su(i))
                       {
                                 if(hui(i))
                                 {b[k]=i;k++;}
                       }
     }
     if(k==0)
     printf("no");
     else{
          for(i=0;i<k-1;i++)
          printf("%d,",b[i]);
          printf("%d",b[i]);
          }
          getchar();
          getchar();
          getchar();
}


int main(int argc, char* argv[])
{
    int m,n,i,j,k,l,t=1,p,a[200];
	char s1[20],s2[20];
	int amount=0;

	scanf("%d%d",&m,&n);

	for(i=m;i<=n;i++)
	{
        t=1;
		for(j=2;j<i;j++)
		{
			if(i%j==0){
				t=0;
				break;}
		}

		int si;
		si=i;

		sprintf(s1,"%d",si);
		int len=strlen(s1);
		for(k=len-1,l=0;k>=0,l<len;k--,l++)
		{
			s2[l]=s1[k];
		}
		s2[len]='\0';

		if((t==1)&&(strcmp(s2,s1)==0))
		{
			amount++;
			a[amount-1]=i;
		}

	}

	if(amount==0)
	{
		printf("no");
	}
    else
	{
		printf("%d",a[0]);
	    for(p=1;p<amount;p++)
		{
	    	printf(",%d",a[p]);
		}
	}

	printf("\n");

    return 0;
}


/*??*/
short IsPremium(int n)
{
	int i;
	if(n==2)
	return 1;
	if(n%2==0)
	return 0;
	if(n<=1)
	return 0;
	for(i=3; i<=sqrt(n); i+=2)
	{
		if(n%i==0)
			return 0;
	}
	return 1;
}
short IsHuiWenShu(int n)
{
	int len = (int)(log(n)/log(10))+1;
	int i;
	for(i=0; i<len/2; i++)
	{
		if((n/(int)pow(10,i)%10)!=(n/(int)pow(10,len-i-1)%10))
			return 0;
	}
	return 1;
}
int main()
{
	int m, n;
	short flag = 0;
	scanf("%d%d", &m, &n);
	for(; m<=n; m++)
	{
		if(IsPremium(m)&&IsHuiWenShu(m))
		{
			if(flag) printf(",");
			printf("%d", m);
			flag = 1;
		}
	}
	if(!flag)
		printf("no");
	return 0;
}


int main()
{
	int m, n;
	scanf("%d%d", &m, &n);
	int ar[10]={0}, s=0, p=m;
	while(p) {
		ar[s++] = p % 10;
		p /= 10;
	}
	int i, j, k;
	int first = 1;
	for(i=m; i<=n; i++)
	{
		for(j=0; j<s/2; j++)
			if (ar[j] != ar[s-1-j]) break;
		if (j==s/2 && i%2)	{
			int prime=1;
			for(j=3;j<=sqrt((double)i);j+=2) {
				if (i%j==0)
				{
					prime =0;
					break;
				}
			}
			if (prime) {
				if (first) first = 0;
				else printf(",");
				printf("%d", i);
			}
		}
		j=0;
		while(ar[j] == 9) j++;
		ar[j]++;
		for(k=0; k<j; k++) ar[k] = 0;
		if (j == s) s++;
	}
	if (first) printf("no");
	return 0;
}


int check(int a)
{
    int i;
    double k;
    k=sqrt(a);
    for(i=2;i<=k;i++)
    {
      if(a%i==0)
      break;
    }
    if(i>k)
    return 1;
    else
    return 0;
}
int checka(int b)
{
   int i,j,c[100];
   for(i=0;b!=0;i++)
   {
      c[i]=b%10;
      b=b/10;
   }
   for(j=0;j<=i/2;j++)
   {
       if(c[j]!=c[i-1-j])
       break;

   }
   if(j-1==i/2)
   return 1;
   else
   return 0;
}
int main()
{
     int m,n,i,j,s=0;
    scanf("%d %d",&m,&n);

    for(i=m;i<=n;i++)
    {
        if((check(i)==1)&&(checka(i)==1))
        {printf("%d",i);
        s++;
        break;}
    }
    for(j=i+1;j<=n;j++)
    {if((check(j)==1)&&(checka(j)==1))
        {printf(",%d",j);
        s++;}
}
if(s==0)
{printf("no");}
    getchar();
    getchar();
}


int power(int n,int k){
	int i;
	int answer=1;
	for(i=1;i<=k;i++){
		answer=answer*n;
	}
	return answer;
}
char str[100];
int checkhui(int number){
	int s=log10(number);
	int i;
	int a[1000];
	int check=1;
	for(i=0;i<=s;i++){
		a[i]=number/power(10,s-i);
		number=number-a[i]*power(10,s-i);
	}
	int j;
	for(j=0;j<=s/2;j++){
		if (a[j]==a[s-j]){
			continue;
		}
		else{
			check=0;
			break;
		}
	}
	return check;
}

int checksu(int number){
	int j;
	int check=1;
	if (number==2) return check;
	for(j=2;j<=number-1;j++){
		if (number%j==0){return 0;break;}
	}
	return check;
}
int main(){
	int small,big;
	scanf("%d",&small);
	scanf("%d",&big);
	int i;
	int status=0;
	for(i=small;i<=big;i++){
		if ((checkhui(i)==1)&&(checksu(i)==1)) {printf("%d",i);
		status=1;
		break;
		}
	}
	for(++i;i<=big;i++){
		if ((checkhui(i)==1)&&(checksu(i)==1)) printf(",%d",i);
	}

if (status==0) printf("no");

	return 0;
}


void main()
{
	int a,b,c,d,temp,k,i,flag=0;
	scanf("%d %d",&a,&b);
	for(;a<=b;a++)
	{
		temp=a;d=0;
		while(temp>0)
		{
			c=temp%10;
			d=d*10+c;
			temp=temp/10;
		}
		if(d==a)
		{
			k=sqrt(d);
			for(i=2;i<=k;i++)
			{
				if(d%i==0)
				break;
			}
			if(i>=k+1)
			{
				flag=flag+1;
				if(flag==1)
					printf("%d",d);
				else
					printf(",%d",d);
			}
		}
	}
	if(flag==0)
		printf("no");
}


int run(int n)
{
    int i=0,j=0;
	if(n==1)
		return -1;
	for(i=2;i<=sqrt(n);i++)
	{
        if(n%i==0)
			return -1;
	}
	return 1;
}
int trans(int n)
{
	int result=0;
	while(n>=1)
	{
		result=result*10+n%10;
		n=n/10;
	}
	return result;
}
int main()
{
	int m,n,i,k=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(run(i)==1&&trans(i)==i)
		{
			k++;
			if(k==1)
			    printf("%d",i);
			else
				printf(",%d",i);
		}
	}
	if(k==0)
		printf("no");
	return 0;
}


int zhi(int i);
int hw(int i);
void main(void)
{
	int m, n, a[100];
	scanf("%d%d",&m, &n );
	int i, j = 0;
	for(i = m;i <= n;i ++)
	{
		if(zhi(i) == 1 && hw(i) == i)
		{	a[j] = i;
			j ++;
		}
	}
	if(j == 0)
		printf("no");
	else
	{	for(i = 0;i < j - 1;i ++)
			printf("%d,",a[i]);
		printf("%d",a[j - 1]);
	}
}

int zhi(int i)
{
	int k;
	if(i == 1)
		return 0;
	if(i == 2)
		return 1;
	for(k = 2;k < i;k ++)
	{
		if(i % k == 0)
			return 0;
	}
	return 1;
}

int hw(int i)
{
	int k = 0;
	while(i > 0)
	{
		k = k * 10 + i % 10;
		i = i / 10;
	}
	return k;
}


int num(int x)
{
	int i;
	for (i=2;i<x;i++)
	{
		if (x%i==0)
			return 0;
	}
	return 1;
}

int averse(int x)
{
	int i,j,a[100]={0};
	for (i=0,j=10;;i++)
	{
		a[i]=x%10;
		x=x/10;
		if (x==0)
			break;
	}
	for (j=0;j<=i;j++)
	{
		if (a[j]!=a[i-j])
			return 0;
	}
	return 1;
}

void main()
{
	int x,m,n,enter=1,mark=0;
	scanf ("%d %d",&m,&n);
	for (x=m;x<=n;x++)
	{
		if (num(x)==1 && averse(x)==1)
		{
			mark=1;
			if (enter==1)
			{
				enter=0;
				printf ("%d",x);
			}
			else
				printf (",%d",x);
		}
	}
	if (mark==0)
		printf ("no");
}


int hui(int n);
int sushu(int n);
int main()
{
    int m,n,i;
    int first=1,flag=1;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++)
    {
         if(hui(i)&&sushu(i))
         {
              if(first)
              {
                  printf("%d",i);
                  first=0;
               }
               else
               printf(",%d",i);
               flag=0;
         }
    }
    if(flag)
    printf("no");
    return 0;
}
int hui(int n)
{
    int temp,s=0;
    temp=n;
    while(n!=0)
    {
               s*=10;
               s+=n%10;
               n/=10;
    }
    if(s==temp)
    return 1;
    else
    return 0;
}
int sushu(int n)
{
    int i;
    for(i=2;i<n;i++)

           if(n%i==0)
           return 0;
         return 1;

}


int hui(int p,int a);
int su(int q);
void main()
{
	int m,n,i,flag=0,blag=0,k=0,array[1000];
	for(i=0;i<1000;i++)
		array[i]=0;
	scanf("%d %d",&m,&n);
     for(i=m;i<=n;i++)
	 {
		 if(hui(i,i))
		 {
			 flag=1;
			 if(su(i))
			 {
				 blag=1;
				 array[k]=i;
				 k++;
			 }
		 }
	 }
		 if(blag==1)
		 {
			 for(i=0;i<k-1;i++)
				 printf("%d,",array[i]);
			 printf("%d",array[k-1]);
		 }
		 else
			 printf("no");

}
int hui(int p,int a)
{
	int r,fan=0;
	do
	{
		r=p%10;
		fan=fan*10+r;
		p=p/10;
	}while(p!=0);

	if(fan==a)
		return(1);
	else
		return(0);
}
int su(int q)
{
	int r,chu=2;
	while(chu<q)
	{
		r=q%chu;
		if(r==0)
			break;
		else
			chu++;
	}
	if(chu==q)
		return(1);
	else
		return(0);
}


int main()
{
	int zhishu(int x);
	int inttostr(int y);
	int m,n,i,num[100]={0},v=0;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(zhishu(i)==1)
		{
			if(inttostr(i)==1)
			{
				num[v++]=i;
			}
		}
	}
	if(num[0]==0)
	{
		printf("no");
		return 0;
	}
	for(i=0;i<v;i++)
	{
		if(i==0)
		{
			printf("%d",num[i]);
		}
		else
		{
			printf(",%d",num[i]);
		}
	}
	return 0;
}

int zhishu(int x)
{
	int k=0,j;
	for(j=2;j<x;j++)
	{
		if((x%j)==0)
		{
           return(0);
		}
		else
		{
			k=k+1;
		}
	}
	if(k==j-2)
	{
		return(1);
	}
}

int inttostr(int y)
{
	int data[8],t,l,q=0;
	for(t=0;y>0;t++)
	{
		data[t]=y%10;
		y=y/10;
	}
	l=t;
	for(t=0;t<l;t++)
	{
		if(data[t]!=data[l-1-t])
		{
			return(0);
		}
		else
		{
			q=q+1;
		}
	}
	if(q==l)
	{
		return(1);
	}
}


int huiwen(int n)
{
int a,b;
b=0;
a=n;
while(a!=0)
{
b=b+a%10;
a=(int)a/10;
b=b*10;
}
b=b/10;
if(b==n)
{
return 1;

}
return 0;

}
int shushu(int n)
{
int i;
for(i=2;i<n;i++)
{
if(n%i==0)
return 0;

}
 return 1;

}
int main()
{
 int m,n;	 int t;
 scanf("%d %d",&m,&n);
 int i,count=0;
 for(i=m;i<=n;i++)
 {

  if(huiwen(i)&&shushu(i))
  {count++;
   printf("%d",i);
   t=i;
   break;

  }

  } for(i=t+1;i<=n;i++)
 {

  if(huiwen(i)&&shushu(i))
  {count++;
   printf(",%d",i);
   t=i;

  }

  }

if(count==0)printf("no");
return 0;

}


void main()
{
	int huiwen(int x);
	int sushu(int x);
	int m,n;
	int i,t=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
		if((huiwen(i))&&(sushu(i)))
		{
			t++;
			if(t!=1)
				printf(",");
			printf("%d",i);
		}
	if(t==0)
		printf("no\n");
}
int huiwen(int x)
{
	int y=0,t;
	t=x;
	while(x!=0)
	{
		y=y*10+x%10;
		x=x/10;
	}
	if(y==t)
		return(1);
	else
		return(0);
}
int sushu(int x)
{
	int i,t,r=0;
	t=sqrt(x);
	for(i=2;i<=t;i++)
		if(x%i==0)
		{
			r=1;
			break;
		}
	if(r==0)
		return(1);
	else
		return(0);
}


int prime(int k)
{ int i,n;
  n=sqrt(k);
  for(i=2;i<=n;i++)
	  if(k%i==0) break;
  if(i>n) return(1);
  else return(0);

}

int same(int k)
{ int m=0,n;
  n=k;
  while(n>0)
  { m=m*10+n%10;
    n=n/10;}

  if(m==k) return(1);
  else return(0);

}

void main()
{ int n,m,i,t=0;
  scanf("%d%d",&m,&n);
  for(i=m;i<=n;i++)
    if(prime(i)&&same(i))
   { if(t>0) printf(",");
	 printf("%d",i);
	 t++;
   }
 if(t==0) printf("no");

}


int huiwen(int i)
{
	int temp=i,k,n=0;
	while(temp>0)
	{
		k=temp%10;
		n=n*10+k;
		temp=temp/10;
	}
	if(n==i)
		return(0);
	else
		return(1);
}
int zhishu(int i)
{
	int j,s=0;
	if(i==2 || i==3) return(0);
	for(j=2;(j*j)<=i;j++)
	{
		if(i%j==0) s++;
	}
	if(s==0) return(0);
	else return(1);

}
void main()
{
	int m,n;
	int x[100];
	scanf("%d%d",&m,&n);
	int i,k=0;
	for(i=m;i<=n;i++)
	{
		if(huiwen(i)==0 && zhishu(i)==0)
		{
			x[k]=i;
			k++;
		}
	}
	if(k==0) printf("no\n");
	else
		for(i=0;i<k;i++)
		{
			if(i!=k-1)
				printf("%d,",x[i]);
			else
				printf("%d\n",x[i]);
		}
}


int main()
{
	int zhi(long int r),hui(long int r);
	long int m,n,t=0,n1,n2,u=0,i;
	int a[1000];
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		n1=zhi(i);
		n2=hui(i);
		if(n1==0&&n2==0)
		{a[t]=i;t++;u=t;}
	}
	if(u==0)printf("no");
	else
	{
	for(t=0;t<u-1;t++)
		printf("%d,",a[t]);
            printf("%d",a[u-1]);

	}
}

int zhi(long int m)
{
	long int i,k,z=1;
	k=sqrt(m);
	for(i=2;i<=k;i++)
		if(m%i==0)break;
	if(i>k)z=0;
	return z;
}

int hui(long int m)
{
	long int a[200];
	long int n,num,t=0,k,r;
	num=log10(m);
	for(n=0,k=num;n<=num;n++)
	{
		r=pow(10,k);
		a[n]=m/r;
		m=m-a[n]*r;
		k--;
	}
	for(n=0;n<=num/2;n++)
		if(a[n]!=a[num-n]){t=1;break;}
	return t;
}


int m,n;
int huiwen(int x,int y)
{
	if(x==0)
		return y;
	else
	{
		y=y*10+x%10;
		return huiwen(x/10,y);
	}
}
int zhishu(int k)
{
	int z;
	for(z=2;z<=sqrt(k);z++)
	{
		if(k%z==0)
			break;
	}
	if(z>sqrt(k))
		return 1;
	else
		return 0;
}
void main()
{
	int m,n,i,c=0,t=0,a;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		t=huiwen(i,0);
		if(t==i)
		{
			a=zhishu(i);
			if(a==1)
			{
				c++;
				if(c==1)
					printf("%d",i);
				else
					printf(",%d",i);
			}
		}
	}
	if(c==0)
		printf("no");
	printf("\n");
}


int zhishu(int x)
{
int b,j;
b=(int)sqrt(x);
for(j=2;j<=b;j++)
{
if(x%j==0)break;
}
if(j!=(b+1))return(0);
else return(1);
}

int nixu(int x,int z)
{
	if(x==0)return z;
	else return nixu(x/10,z*10+x%10);
}

int huiwen(int x)
{
	if(x==nixu(x,0))return 1;
	else return 0;
}

void main ()
{
	int m,n,i,count=0;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)if(zhishu(i)&&huiwen(i))count=i;
	if(count==0)printf("no\n");
	else
	{
		for(i=m;i<=n;i++)
		{
			if(zhishu(i)&&huiwen(i))
			{
				printf("%d",i);
				if(i!=count)printf(",");
			}
		}
	}
	putchar(10);
}


int ss(long num)
{
   long i,j,k;
   k=sqrt(num)+1;
   if (num==2) return 0;
   if (num==1) return 1;
   for (i=2;i<=k;i++)
   {
       if ((num%i)==0) return 1;
   }
   return 0;
}

int huiwen(long num)
{
    long i,j,k,x;

	char num2[10];

	k=1;
	while (num>=10)
	{

		num2[k]=num%10+48;
	   num=num/10; k++;

	}
    num2[k]=num+48;

	x=k/2+1;
	for (i=1;i<=x;i++)
	{
	   if (num2[i]!=num2[k-i+1]) return 0;
	}
	return 1;
}

int main()
{
    long i,n,m,k,ans;

	scanf ("%d %d",&n,&m);
	k=0;
	for (i=n;i<=m;i++)
	{
	   ans=ss(i);
	   if (ans==0)
	   {
	      if (huiwen(i)==1)
		  {
		   if (k==0) printf ("%d",i);
		      else printf (",%d",i);
            k++;
		  }
	   }
	}
	if (k==0) printf ("no\n");
}


int sushu(int m)
{int i,j,k=1;
j=m/2;
for(i=2;i<=j;i++)
if(m%i==0)k=0;
if(k==1)return(1);
else return(0);}
int huiwen(int m)
{int t=0;
while(m)
{t=t*10+m%10;
m=m/10;}
return(t);}
void main()
{int m,n,i,j,t=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{if(sushu(i)&&(i==huiwen(i)))
{if(t==0)printf("%d",i);
else printf(",%d",i);
t++;}}
if(t==0)printf("no");}


long int huiwen(long int m,long int n)
{

	if(m==0)
	   return(n);
	else
	   return(huiwen(m/10,n*10+m%10));
}
int sushu(long int n)
{
	long int i;
	for(i=2;i<=sqrt(n);i++)
		if(n%i==0)
			break;
	if(i>sqrt(n))
		return(1);
	else
		return(0);
}

void main()
{
	long int m,n,i,j;
	scanf("%ld%ld",&m,&n);
	int p=0;
	for(i=m;i<=n;i++)
	{
		if((i==huiwen(i,0))&&sushu(i))
		{
			if(p==0)
			{
				printf("%ld",i);
				p++;
			}
			else
				printf(",%ld",i);
		}

	}
	if((i==n+1)&&p==0)
			printf("no\n");

}


int m,n;

int zhi(int n)
{
	int i,t;
	t=n/2;
	for (i=2;i<t;i++)
	{
		if (n%i==0) return 0;
	}
	return 1;
}

int hui(int n)
{
	int temp,h;
	temp=n;
	h=0;
	while (temp>0)
	{
		h=h*10+temp%10;
		temp/=10;
	}
	if (n==h)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}

int main()
{
	int i,flag=1;
	scanf("%d%d",&m,&n);
	for (i=m;i<=n;i++)
	{
		if (hui(i) && zhi(i))
		{
			if (flag!=1)
			{
				printf(",%d",i);
			}
			else
			{
				printf("%d",i);
				flag=0;
			}
		}
	}
if (flag==1)
{
printf("no");
}
//	scanf("%d%d",&m,&n);
	return 0;
}


int sieve[100010]={1,1,0};
int q[1000];
int l=0;
int m,n;

void init()
{
    int i,j;
    scanf("%d%d",&n,&m);
    for(i=2;i<330;i++)
    {
        if(!sieve[i])
        {
            j=i;
            while(i*j<100010)
            {
                sieve[i*j]=1;
                j++;
            }
        }
    }
}

int jud(int x)
{
    int t=x,u=0;
    while(t)
    {
        u=u*10+t%10;
        t/=10;
    }
    return u==x;
}

void solve()
{
    int i;
    for(i=n;i<=m;i++)
    {
        if(!sieve[i] && jud(i))
        {
            q[l++]=i;
        }
    }
}

void print()
{
    int i;
    for(i=0;i<l;i++)
    {
        printf("%d",q[i]);
        if(i<l-1)   putchar(',');
    }
    if(!l)  printf("no");
    putchar('\n');
}

int main()
{
    init();
    solve();
    print();
    return 0;
}


int main ()
{
	int m,n,i,w=0;
	int a[50],j=1;
	scanf("%d%d",&m,&n);
	int huiwen(int i);
	int susu(int i);
	for (i=m;i<=n;i++)
	{
		if (i==huiwen(i))
			w=1;
		w=w * susu(i);
		if (w==1)
		{	a[j]=i;
		    j++;
		}
	}
	if (j==1)
		printf("no");
	else
	{
		for (i=1;i<j-1;i++)
			printf("%d,",a[i]);
		printf("%d",a[i]);
	}
	return 0;

}
int huiwen (int i)
{
	int n=0;
	while (i!=0)
	{
		n=i%10+10*n;
		i=i/10;
	}
	return n;
}
int susu(int i)
{
	int j,w=1;
	for (j=2;j<=i/2;j++)
		if (i%j==0)
			w=0;
	return w;
}


int turn(int m)
{
	int n,k;
	n=m;
	int i=0;
	int a[100];
	while(n!=0)
	{a[i]=n%10;i++;n/=10;}
	k=i;
	for(i=0;i<k;i++)
	{
		n*=10;
		n+=a[i];
	}
	if(n==m)return 1;
	else return 0;
}

int check(int m)
{
	int i,test1=1,test=0;
	for(i=2;i<=sqrt(m);i++)if(m%i==0)test1=0;
	if(test1!=0)test+=1;
	if(turn(m))test+=1;
	if(test==2)return 1;
	else return 0;
}

void main()
{
	int m,n,t=0,i;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(check(i)&&t==0){printf("%d",i);t=1;}
		else if(check(i))printf(",%d",i);
	}
	if(t==0)printf("no");
}


int ss(int p)
{
   int x;
   if(p==2)return 1;
   else
   {
     for(x=2;x<p;x++)
	 {
	 if(p%x==0)break;
	 }
     if(x>=p)return 1;
	 else return 0;
   }
}

int huiwen(int p,int q)
{
  if(p==0)return q;
  else huiwen(p/10,q*10+p%10);

}

void main()
{
   int m,n,coun=0;
   scanf("%d %d",&m,&n);
   int i,ci,temp;
   for(i=m;i<=n;i++)
   {  ci=0;
	   temp=huiwen(i,ci);
      if(ss(i)==1&&(temp==i))
	  {coun++;
	  if(coun==1)printf("%d",i);
	  if(coun>1)printf(",%d",i);
	  }

   }
  if(coun==0)printf("no\n");
}


int huiwen(int a);
int prime(int a);
int main()
{
    int m,n,i,t=0;
	scanf("%d%d",&m,&n);
	for (i=m;i<=n;i++){
		if (huiwen(i)&&prime(i)){
			if (t){
				printf(",");
			}
			printf("%d",i);
			t++;
		}
	}
	if (t==0){
		printf("no");
	}
	printf("\n");
	return 0;
}
int huiwen(int a)
{
	int i,b=0;
	for (i=a;i>0;i/=10){
		b=b*10+i % 10;
	}
	if (a==b){
		return 1;
	}else {
		return 0;
	}
}
int prime(int a)
{
	int i;
	if (a==1){
		return 0;
	}
	for (i=2;i<a;i++){
		if (a%i==0){
			return 0;
		}
	}
	return 1;
}


int chengfang(int n)
{
	int i,ans=1;
	for(i=1;i<=n;i++)ans*=10;
	return ans;
}

int ws(int n)
{
	int i;
	for(i=1;i<32;i++)
		if(n/chengfang(i)==0)
		{
			return i;
			break;
		}
}

int sushu(int n)
{
	int i,ans=1;
	for(i=2;i<=sqrt(n);i++){
		if(n%i==0){
			ans=0;
		}
	}
	return ans;
}

int huiwen(int n)
{
	int i,t=ws(n),ans=1;
	for(i=1;i<=t/2;i++){
		if(n/chengfang(i-1)%10!=n/chengfang(t-i)%10)
			ans=0;
	}
	return ans;
}

int main()
{
	int n,m,i,t=0;
	scanf("%d%d",&n,&m);
	for(i=n;i<=m;i++){
		if(sushu(i)==1){
			if(huiwen(i)==1){
				printf("%d",i);
				t=i;
				break;
			}
		}
	}
	if(t==0)printf("no");
	else {
	for(i=t+1;i<=m;i++){
		if(sushu(i)==1){
			if(huiwen(i)==1){
				printf(",%d",i);
			}
		}
	}
	}
	return 0;
}


void main()
{	int sushu(int k);
	int huiwen(int number);
	int m,n,i,t,s=0;
	scanf("%d",&m);
	scanf("%d",&n);
	t=m;
	for(i=t;i<=n;i++)
		if(sushu(i)==1&&huiwen(i)==1) {printf("%d",i);t=i;s++;break;}
	for(i=t+1;i<=n;i++)
		if(sushu(i)==1&&huiwen(i)==1) printf(",%d",i);
	if(s==0) printf("no");
}
int sushu(int k)
{    int s;
     for(s=2;s<=k;s++)
	    if(k%s==0) break;
	 if(k==s) return(1);
	 else return(0);
}
int huiwen(int number)
{	int num,sum=0,a;
	num=number;
	for( ;num!=0; )
		{a=num%10;
		 num=num/10;
		sum=sum*10+a;
		}
	if(sum==number) return(1);
	else return(0);
}


int sushu(int n)
{
	int i;
	for(i=2;i<=sqrt(n);i++)
	{
		if(n%i==0) return 0;
	}
	if(i=sqrt(n)+1)
		return 1;
}
int huiwen(int n)
{
	int temp=n,k,m=0;
	while(temp>0)
	{
           k=temp%10;
           m=m*10+k;
           temp=temp/10;
    }
    if(m==n) return 1;
    else return 0;
}
int main()
{
	int m,n,i,flag=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(sushu(i)==1&&huiwen(i)==1)
		{
			printf("%d",i);
			flag=1;
			break;
		}
	}
	for(i=i+1;i<=n;i++)
	{
		if(sushu(i)&&huiwen(i))
		{
			printf(",%d",i);

		}
	}
	if(flag==0)
		printf("no");

	return 0;
}


void main()
{
	int m,n,i,p,flag,a,exist,w,b;
	scanf("%d %d",&m,&n);
	exist=0;
	for(i=m;i<=n;i++)
	{
		a=0;
		flag=1;
		for(p=2;p<=i/2;p++)
		{
			if(i%p==0)
			{
				flag=0;
				break;
			}
		}
		if(flag==0)
			continue;
		w=i;
		while(w>0)
		{
			b=w%10;
			a=a*10+b;
			w=w/10;
		}
		if(a==i)
		{
			printf((exist==1)?",%d":"%d",i);
			exist=1;
		}
	}
	if(exist==0)
		printf("no");
}


int su(int a)
{
	int i,z=1;
	for(i=2;i<a;i++)if(a%i==0)z=0;
	return z;
}

int hui(int a)
{
	int temp,b=0;
	temp=a;
	while(temp){b=b*10+temp%10;temp=temp/10;}
	if(a==b) return 1;
	else return 0;
}

void main()
{
	int m,n;scanf("%d %d",&m,&n);
	int i,l=0,a[100],*x=a;
	//i=hui(12321);
	for(i=m;i<=n;i++)
		{if(su(i)*hui(i)==1){l++;*x=i;x++;}
		 else;}
	if(x-a==0)printf("no");
	else{
		printf("%d",a[0]);
	for(i=1;i<l;i++)printf(",%d",a[i]);
}}


int huiwen(int);
int sushu(int);
int main(){
	int m,n;
	scanf("%d %d",&m,&n);	int i,k,*sz=(int *)malloc(sizeof(int)*(n-m));
	k=0;
	for(i=m;i<=n;i++){
		if(huiwen(i)){
			if(sushu(i)){
			sz[k]=i;
			k++;}
		}
	}
	if(k==0){printf("no");}
	else{
		printf("%d",sz[0]);
		for(i=1;i<k;i++){
			printf(",%d",sz[i]);
		}
	}
	return 0;
}
int huiwen(int x){
	int z=0,y,wei[10];
	for(y=x;y>0;y=y/10){
		wei[z]=y%10;
		z++;
	}
	for(y=0;y<z/2;y++){
		if(wei[y]!=wei[z-1-y]){
			return 0;
		}
	}
	return 1;
}
int sushu(int w){
	if(w==2){
		return 1;
	}
	int u,v=0;
	for(u=2;u<w;u++){
		if(w%u==0){
			v++;
		}
	}if(v==0){return 1;}else{return 0;}
}


int n,m;
int ans[100];
int look=0;
int i;
int check1(int num);
int check2(int num);
int main(void)
{
	scanf("%d %d",&n,&m);
	for(i=0;i<100;i++)
	{
		ans[i]=0;
	}
	for(i=n;i<=m;i++)
	{
		if(check1(i) && check2(i))
		{
			ans[look]=i;
			look++;
		}
	}
	if(look==0)
	{printf("no");
	return 0;}
	printf("%d",ans[0]);
	for(i=1;i<look;i++)
	{
		printf(",%d",ans[i]);
	}
    return 0;
}

int check1(int num)
{
	int j;
	for(j=2;j<=sqrt(i);j++)
	{
		if(i%j==0)
			return 0;
	}
	return 1;
}
int check2(int num)
{
	int len=0;
	int ctr1;
	int number1[100];
	int number2[100];
	int temp=num;
	while(temp!=0)
	{
		temp=temp/10;
		number1[len+1]=temp;
		len++;
	}
    number1[0]=num;
	for(ctr1=0;ctr1<len;ctr1++)
	{
        number2[ctr1]=number1[ctr1]-number1[ctr1+1]*10;
	}
	temp=0;
	for(ctr1=0;ctr1<len;ctr1++)
	{
		temp=temp*10+number2[ctr1];
	}
	if(temp==num)
		return 1;
	else return 0;
}


int f(int n)
{int x=0,t;
t=n;
while(n>0)
{x=x*10+n%10;
n=n/10;
}
if(t==x)return 1;
else return 0;
}
int g(int i)
{int j,t=0;
	for(j=2;j<i/2;j++)
		if(i%j==0) {return 0;break;}
		else t++;
if(t==i/2-1) return 1;
}
void main()
{int m,n,i,k=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{if(f(i)&&g(i))
	{k++;
	if(k==1)printf("%d",i);
	else printf(",%d",i);
	}
}
if(k==0)printf("no\n");
else printf("\n");
}


int pp(int p);
int hv(int h);
main()
{
      int n,m;
      scanf("%d %d",&n,&m);
      int i=0;
      int count=0;
      for(i=n;i<=m;i++)
      {
        // printf(" %d ",i);
        // printf(" %d \n",pp(i));
         if(pp(i)&&hv(i))
           {
              //printf(" %d ",count);
              if(count==0)
                {
                    printf("%d",i);
                }
              if(count>0)
                {
                    printf(",%d",i);
                }
              count++;
           }
      }
     if(count==0)
     {
        printf("no");
     }
      getchar(); getchar(); getchar(); getchar(); getchar(); getchar(); getchar(); getchar(); getchar(); getchar();
}
int pp(int p)
{
    int i=0;
    if(p==1)
       return(0);
    if(p==2||p==3||p==5)
       return(1);
    for(i=2;i<=sqrt(p);i++)
    {
       if(p%i==0)
       {
          return(0);
       }
    }
    return(1);
}
int hv(int h)
{
    int a[8];
    int i=1;
    while(h>0)
    {
       a[i]=h%10;
       h/=10;
       i++;
    }
    i--;
    //printf("i= %d ",i);
    //int s=0;
    //for(s=1;s<=i;s++){printf("%d",a[s]);}printf(" ");
    int j=0;
    for(j=0;j<=i/2;j++)
    {
       if(a[j+1]!=a[i-j])
       {
          // printf("  0 \n");
       return(0);}
    }                         //printf("  1 \n");
    return(1);
}


int is_huiwen(long x)
{
	long r=0,xx;
	xx=x;
	while (xx!=0)
	{
		r=r*10+xx%10;
		xx=xx/10;
	}
	if (r==x) return 1;
	else return 0;
}
int is_sushu(long x)
{
	int y,f=1;
	if (x==2) return 1;
	else if (x%2==0) return 0;
	else
	{
		for (y=3;y<=(int)sqrt(x);y+=2)
			if (x%y==0) f*=0;
		return f;
	}
}
void main()
{
	long m,n,a,num[50];
	int i,f=-1;
	scanf("%d%d",&m,&n);
	for (a=m;a<=n;a++)
		if (is_sushu(a) && is_huiwen(a))
		{
			f++;
			num[f]=a;
		}
	if (f==0) printf("%d",num[0]);
	else if (f>0)
	{
		printf("%d",num[0]);
		for (i=1;i<=f;i++)
			printf(",%d",num[i]);
	}
	else printf("no");
}


int revchk(int);
int main()
{
	int m,n,i,j,flag,tag=1,*t,*p,count=0;
	scanf("%d %d", &m, &n);
	t=(int*)calloc(n-m+1,sizeof(int));
	p=t;
	for(i=m;i<=n;i++){
		flag=1;
		for(j=2;j<(int)sqrt(i)+1;j++){
			if(i%j==0){
				flag=0;
				break;
			}
		}
		if(flag)
			if(revchk(i)){
				*(t++)=i;
				count++;
			}
	}
	t=p;
	if(!*t)
		printf("no");
	i=0;
	while(*(t)){
		printf("%d",*(t++) );
		if(i++<count-1)
			printf(",");
	}
	free(p);
	return 0;
}

int revchk(int test)
{
	int i,j,*n;
	int digit=(int)(log(test)/log(10))+1;
	n=(int*)calloc(digit,sizeof(int));
	*(n+digit-1)=(int)(test/pow(10,digit-1));						//??????????
	for(i=digit-2;i>=0;i--){
		test=test-pow(10,i+1) * (*(n+i+1) );
		*(n+i)=(int)(test / pow(10,i) );							//???????
	}
	for(i=0,j=digit;i<j;i++,j--){
		if( *(n+i)==*(n+j-1) )
			continue;
		return 0;
	}
	return 1;
}


int huiwen(int n)
{
	int m=0;
	while(n!=0)
	{
		m=m*10+n%10;
		n=n/10;
	}
	return(m);
}
int sushu(int n)
{
	int i;
	if(n%2==0&&n>2)
		return(0);
	else if(n==2)
		return(1);
	else
	{
		for(i=3;i<=sqrt(n);i+=2)
		{
			if(n%i==0)
				break;
		}
		if(i<=sqrt(n))
			return(0);
		else
			return(1);
	}
}
void main()
{
	int m,n,k,a=0;
	scanf("%d%d",&m,&n);
	for(k=m;k<=n;k++)
	{
		if(k==huiwen(k)&&sushu(k)==1)
		{
			if(a==0)
			{
				printf("%d",k);
				a++;
			}
			else
				printf(",%d",k);
		}
	}
	if(a==0)
		printf("no");
}


int main()
{
	int m,n,flag[100000],i,j,flagio=0,temp;
	int judge(int k);
	scanf("%d %d",&m,&n);
	temp=m;
	for(i=m;i<=n;i++)flag[i]=1;
	for(i=m;i<=n;i++)for(j=2;j<=sqrt(i);j++)if(i%j==0)flag[i]=0;
	for(i=m;i<=n;i++)if((flag[i])&&(judge(i))){temp=i;printf("%d",i);flagio=1;break;}
	for(i=temp+1;i<=n;i++)if((flag[i])&&(judge(i)))printf(",%d",i);
	if(flagio==0)printf("no");
	return 0;
}
int judge(int k)
{
	int i=0,l,sum=0,scale=1,tem;
	tem=k;
	while(k>=pow(10,i))i++;
	i--;
	while(i>=0)
	{
		l=k/pow(10,i);
		sum=sum+l*scale;
		k=k-l*pow(10,i);
		scale=scale*10;
		i--;
	}
	if(sum==tem)return(1);
	else return(0);
}


void main()
{
	int m,n,i,x[1000],count=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		if(f(i)*g(i)==1)
		{count++;
		x[count]=i;
		}
	}
	if(count==0) printf("no");
	if(count==1) printf("%d",x[1]);
	if(count>=2)
	{
		for(i=1;i<count;i++)
			printf("%d,",x[i]);
		printf("%d",x[count]);
	}
}

int f (int a)
{   int b,c,temp=0;
	if(a==2) return 1;
	b=a/2;
	for(c=2;c<=b;c++)
	{
		if(a%c==0)
		{temp=1;
		break;}
	}
	if(temp==0) return 1;
	if(temp==1) return 0;
}

int g(int a)
{ int b=0,d[100],i,temp=0;
   for(i=0; ;i++)
   {b++;
   d[i]=a%10;
   a=a/10;
   if(a==0) break;
   }
   for(i=0;i<b;i++)
   {
	if(d[i]!=d[b-1-i])

	{
		temp=1;
		break;
	}
   }
   if(temp==1) return 0;
   if(temp==0) return 1;
}


int pdhw(int i);
int pdss(int i);
void main()
{
	int m,n,cs=0,h,s,i;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		h=pdhw(i);
		if(h==1)
		{
			s=pdss(i);
			if(s==1)
			{
				if(cs>0)
					printf(",");
				printf("%d",i);
				cs++;
			}
		}
	}
	if(cs==0)
		printf("no");
}
int pdhw(int i)
{
	int d=1,f=0,j=0,k,w,v=0,b[100]={0};
	do
	{
		d=d*10;
		f=i/d;
		j++;
	}
	while(f!=0);
	w=i;
	for(k=0;k<j;k++)
	{
		b[k]=w%10;
		w=w/10;
	}
	for(k=0;k<j;k++)
	{
		v=v*10+b[k];
	}
	if(v==i)
		return(1);
	else return(0);
}
int pdss(int i)
{
	int j,r=0;
	for(j=2;j<=sqrt(i);j++)
	{
		if(i%j==0)
		{
			r=1;
			break;
		}
	}
	if(r==0)
		return(1);
	else return(0);
}


int isprime(int n)
{
    int i;
    for (i = 2; i < n; i++)
    {
        if (n % i == 0)
            return 0;
    }
    return 1;
}

int ishuiwen(int n)
{
    int i, len;
    char a[11];
    sprintf(a, "%d", n);
    len = strlen(a);
    for (i = 0; i < len/2; i++)
    {
        if (a[i] != a[len-i-1])
            return 0;
    }
    return 1;
}

int main()
{
    int count = 0, i, m, n;
    scanf("%d%d", &m, &n);
    for (i=m; i<=n; i++)
    {
        if (isprime(i) && ishuiwen(i))
        {
            count++;
            if (count == 1)
                printf("%d", i);
            else
                printf(",%d",i);
        }
    }
    if (count == 0)
        printf("no");
    return 0;
}


int f(int x)
{
    int s=0,y,z;
    y=x;
    while(x!=0)
    {
    s=10*s+x%10;
    x=x/10;
    }
    if(s==y)
    return 1;
    else
    return 0;
}
int g(int x)
{
    int i;
    for(i=2;i<=x/2;i++)
    {
    if(x%i==0)
    break;
    }
    if(i==x/2+1)
    return 1;
    else return 0;
}
main()
{
      int i,m,n,t=0;
      scanf("%d %d",&m,&n);
      for(i=m;i<=n;i++)
      {
      if(f(i)==1 && g(i)==1)
      {
      if(t==0)
      {
      printf("%d",i);
      t++;
      }
      else
      printf(",%d",i);
      }
      }
      if(t==0)
      printf("no");
      getchar();
      getchar();
      }


int hui(int a)
{
	int b=0,c;
	c=a;
	do
	{
		b=10*b+a%10;
		a=(a-a%10)/10;
	}while(a!=0);
	if(b==c) return 1;
	else return 0;
}
int sui(int a)
{
	int i;
	for(i=2;i<a;i++) if(a%i==0)break;
	if(i==a) return 1;
	else return 0;
}
void main()
{
	int m,n,i,j,a[100];
	scanf("%d %d",&m,&n);
	for(i=m,j=0;i<=n;i++) if(hui(i)==1&&sui(i)==1) a[j++]=i;
	if(j==0) printf("no\n");
	else
	{
		for(i=0;i<j-1;i++) printf("%d,",a[i]);
	    printf("%d\n",a[j-1]);
	}
}


void main()
{
	int huiwen(int);
	int prime(int);
	int s[80]={0};
	int a,b,c,d,i,j;
	d=0,i=0;
	scanf("%d%d",&a,&b);
	for(c=a;c<=b;c++)
	{
		if(huiwen(c)&&prime(c))
		{
			d=d+1;
			s[i++]=c;
		}
		s[i]='\0';
	}
	if(d==0)
		printf("no");
	if(d==1)
		printf("%d",s[0]);
	if(d>=2)
	{
		printf("%d,%d",s[0],s[1]);
		for(j=2;j<d;j++)
			printf(",%d",s[j]);
	}
}

int huiwen(int q)
{
	int w,e,t,flag;
	e=0;
	t=q;
	while(q!=0)
	{
		w=q%10;
		e=e*10+w;
		q=q/10;
	}
	if(e==t)
	{
		flag=1;
		return(flag);
	}
	else
	{
		flag=0;
		return(flag);
	}
}

int prime(int p)
{
	int g,flag;
	for(g=2;g<=sqrt(p);g++)
		if(p%g==0)
		{
			flag=0;
			return(flag);
		}
		if(g>sqrt(p))
		{
			flag=1;
			return(flag);
		}
}


int rev(int i);
int shu(int j);
void main()
{
	int m,n,i,t;
	scanf("%d %d",&m,&n);
	t=0;
	for (i=m;i<=n;i++)
		if (rev(i)&&shu(i))
		{
			if (t!=0) printf(",");
			printf("%d",i);
			t=1;
		}
	if (t==0) printf("no");
}

int rev(int i)
{
	int k,s=0;
	k=i;
	while (i!=0)
	{
		s=s*10+i%10;
		i=i/10;
	}
	if (s==k) return 1;
	else return 0;
}
int shu(int i)
{
	int j;
	for (j=2;j<=sqrt(i);j++)
		if (i%j==0) return 0;
	return 1;
}


//var
int a,b,k,l;

//implementation
int prime(int n)
{
  int i,j;
  j=0;
  for(i=2;i*i<=n;i++){if (n%i==0){j=1;break;}}
  return(1-j);
}
int huiw(int n)
{
  int i,j;
  i=n;j=0;
  while (i!=0){j=j*10+i%10;i=i/10;}
  return(j==n);
}

void main()
{
  scanf("%d%d",&a,&b);
  l=0; for (k=a;k<=b;k++)if(prime(k)&&huiw(k))
  {if (l>0) printf(","); l++;printf("%d",k);}
  if (l==0)printf("no");
}


int i;
int sushu(int x)
{
	for(i=2;i<x/2;i++)
		if(x%i==0)break;
	if(i>=x/2)return(1);
	else return(0);
}
int huiwen(int p)
{
	int s[10],k,d,t=0;
	d=p;
	for(i=0;p!=0;i++)
	{
		s[i]=p%10;
		p/=10;
	}
	for(k=0;k<i;k++)
		t=t*10+s[k];
	if(d==t)return(1);
	else return(0);
}
main()
{
	int n,m;
	scanf("%d %d",&m,&n);
	for(;m<=n;m++)
	{
		if(sushu(m)&&huiwen(m))
			{
				printf("%d",m);
				break;
			}
	}
	if(m>n)printf("no");
	m++;
	for(;m<=n;m++)
		if(sushu(m)&&huiwen(m))printf(",%d",m);
}


int main()
{
int m,n;
scanf("%d%d",&m,&n);

int shu[1000];
int shushu=1;
int test;
test=m;

for(;test<=n;test++)
{

int huiwen[10];
int i=1;
int k;
int tester=test;
for(i=1;tester!=0;i++)
{
huiwen[i]=tester%10;
tester=tester/10;
k=i;
}
i=i-1;
int counter=1;
int testhuiwen=0;
for(i=k;i>=1;i--)
{
testhuiwen=huiwen[i]*counter+testhuiwen;
counter=counter*10;
}

if(test==testhuiwen)
{
	int yinzi=2;
	for(;yinzi<=test;yinzi++)
	{
		if((test%yinzi)!=0)
		{   k=yinzi;
			continue;
		}
		else
		{break;}
	}
    if (yinzi==test)
    {shu[shushu]=test;
	shushu++;}
    else {}
}
else
{continue;}
}

if(shu[1]==0)
{printf("no");}
else
{
int p=1;
for(;p<(shushu-1);p++)
{printf("%d,",shu[p]);
}

printf("%d",shu[p]);
}

return 0;
}


void main()
{
	int hui(int x);
	int su(int x);
	int m,n,i,j,k;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
		if(hui(i)==1&&su(i)==1)
		{
			printf("%d",i);break;
		}
	if(i==n+1)
		printf("no");
	else
	{
		for(i=i+1;i<=n;i++)
		if(hui(i)==1&&su(i)==1)
		printf(",%d",i);
	}
}
int hui(int x)
{
	int i,j,k,m,n,a[100],sum=0;
	k=x;
	for(i=0;;i++)
		if(pow(10,i)>x)
		break;
	m=i;
	for(i=1;i<=m;i++)
	{
		a[i]=x%10;
		x=x/10;
	}
	for(i=1;i<=m;i++)
		sum=sum*10+a[i];
	if(sum==k)
		return(1);
	else return(0);
}
int su(int x)
{
	int i,j,k;
	for(i=2;i<x;i++)
		if(x%i==0)
			break;
	if(i==x)
		return(1);
	else return(0);
}


int IsPalindrome(int x)
{
	int i,num=0;
	for(i=0;x>0;i++)
	{
		num=num*10+(x-(x/10)*10);
		x=x/10;
	}
	return(num);
}
int IsPrime(int x)
{
	int k,i;
	k=sqrt(x);
	for(i=2;i<=k;i++)
		if(x%i==0)
			break;
		if(i>=k+1)
			return 1;
		else return 0;
}
void main()
{
	int m,n,i,j,k;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++){
		if(i==IsPalindrome(i)&&IsPrime(i)==1)
			break;
	}
	for(j=m,k=0;j<=n;j++)
	{
		if(j==IsPalindrome(j)&&IsPrime(j)==1){
			if(j==i) {
				printf("%d",j);
				k++;
			}
			else {
				printf(",%d",j);
				k++;}
		}
	}
	if(k==0) printf("no");
}


void main()
{
	int F(int x);
	int G(int x);
	int m,n,i,a=0;
	scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++)
	{
		if(F(i)&&G(i)) {printf("%d",i);a++;break;}
	}
	for(i=i+1;i<=n;i++)
	{
		if(F(i)&&G(i)) {printf(",%d",i);a++;}
	}
	if(a==0) printf("no");
}

 int F(int x)
 {
 int z,t=0;
 z=x;
 do
 {
	 t=t*10+z%10;
	 z=z/10;
 }
 while(z!=0);
 if(t==x)return(1);
 else return(0);
 }

 int G(int x)
 {
	 int i,b=1;
 for(i=2;i<=sqrt(x);i++)
 {
 if(x%i==0) {b=0;break;}
 }
return(b);
 }