#include <bits/stdc++.h>
using namespace std;
#define limit 1000000
long long n,m,k=0,b[1000000],mu[10],c[1000000],d=2,dem,vitri,h,t=0,g,gtln=INT_MIN,lalala;
bool sieve[1000000];
long long snt[1000000];
int sang()
{
    snt[0]=2;snt[1]=3;
    for (int x=1;x*x<=limit;x++)
    {
        for (int y=1;y*y<=limit;y++)
        {
            int n=(4*x*x)+(y*y);
            if (n<=limit&&(n%12==1||n%12==5))
            {
                sieve[n]^=true;
            }
            n=(3*x*x)+(y*y);
            if (n<=limit&&(n%12==7))
            {
                sieve[n]^=true;
            }
            n=(3*x*x)-(y*y);
            if (x>y&&n<=limit&&n%12==11)
            {
                sieve[n]^=true;
            }
        }
    }
    for (int i=5;i*i<limit;i++)
    {
        if (sieve[i]==true)
        {
            for (int j=i*i;j<=limit;j+=i*i)
            {
                sieve[j]=false;
            }
        }
    }
    snt[0]=2;snt[1]=3;
    for (int i=5;i<=limit;i++)
    {
        if (sieve[i]==true)
            snt[d++]=i;
    }
}
int cs(int a)
{
    int ff=0;
    while (a>0)
    {
        a=a/10;
        ff++;
    }
    return ff;
}
bool check(long long a,long long snt[])
{
    int dd=0;
    if (a<2) return false;
    else
        for (int i=0;;i++)
        {
            if (snt[i]>=sqrt(a))
                return true;
            if (a%snt[i]==0)
                return false;
        }
    return true;
}
int main()
{
    ios_base::sync_with_stdio(false);
    freopen("Ngtoghep.inp","r",stdin);
    freopen("Ngtoghep.out","w",stdout);
    sang();
    cin>>n;
    m=n;
    mu[0]=1;
    for (int i=1;i<10;i++)
    mu[i]=mu[i-1]*10;
   for (int i=0;;i++)
   {
       t=snt[k]*mu[cs(snt[k+1])]+snt[k+1];
       k=k+2;
       if (check(t,snt)==true)
       {
           m=m-1;
           if (m==0) {cout<<t<<endl;break;}
       }
   }
}
