// Problem D : Happy Prime Number
// ACM-ICPC Thailand 2009 : August 2009
// List all happy prime numbers less than n
// 10 <= n <= 1000000
// By Seksun at CoE PSU
#include <stdio.h>
#include <math.h>

#define MAXDIGIT 7

int sumSq(int x);
int isPrime(int x);
int isHappy(int x);

// happy number n<500
/*={1,7,10,13,19,23,28,31,32,44,
  49,68,70,79,82,86,91,94,97,100,
  103,109,129,130,133,139,167,176,188,190,
  192,193,203,208,219,226,230,236,239,
  262,263,280,291,293,301,302,310,313,319,
  320,326,329,331,338,356,362,365,367,368,
  376,379,383,386,391,392,397,
  404,409,440,446,464,469,478,487,490,496};
*/

int main()
{   int i,n,h,m,mx;
    scanf("%d",&n);
    // only odd numbers from 3
    for(i=3;i<=n;i+=1)
    { 
      if (isHappy(i))
       { if (isPrime(i)) 
         printf("%d\n",i); 
       }
    } 
    //getch();
    return 0;
}

// test happy number 
int isHappy(int x)
{ int y,i,hp=0;
  y=x;
  do {
    y=sumSq(y);
    if(y==1||y==7||y==10||y==0) {hp=1; break;}    
  } while( y>10);
  return hp;
}
// sum of square of every digit
int sumSq(int x)
{ int i,ndigit, d[MAXDIGIT], y=x, s=0;
  ndigit=0; i=0;
  while (y>0) { d[i]=y%10; i++; y=y/10; ndigit++; }
  for(i=ndigit-1;i>=0;i--) 
    { s+=d[i]*d[i]; } //printf("%d ",d[i]*d[i]); 
  return s;
}
// test prime number
int isPrime(int x)
{ int i,p; 
  float y;
  y=sqrt(x);
  if (x==2 || x==3 || x==5) return 1;
  if (x<=1 || x%2==0) return 0;
  p=1;
  for (i=3;i<=y;i++)
    if (x%i==0) { p=0; break; }
  return p;  
}

