#include <stdio.h>
#include <stdbool.h>
int main()
{
int l;
scanf("%d", &l);
if(l<2)
{
printf("0");
return 0;
}
bool arr[100000] = {false};
int prime[100000];
int h=0, i, j, n=0;
for(i=2;i<=l;i++)
{
if(!arr[i])
prime[n++] = i;
for(j=0;j<n&&prime[j]<=l/i;j++)
{
arr[i*prime[j]] = true;
if(i%prime[j]==0)
break;
}
}
j=0;
for(i=2;i<l;i++)
{
if(!arr[i])
{
if(h+i>l)
{
printf("%d", j);
break;
}
printf("%d\n", i);
h+=i;
j++;
}
if(i==l-1)
printf("%d", j);
}
return 0;
}