#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
vector<ll> ans;
void sieve(ll n){
    vector<bool> isPrime(n+1, true); 
    isPrime[0] = false;
    isPrime[1] = false;
    
    for(ll p=2;p<=sqrt(n);p++){ 
        if(isPrime[p]){
            for(ll i=p*p;i<=n;i+=p){ 
                isPrime[i]=false; 
            }
        }
    }
    
    for(ll i=2;i<=n;i++){
        if(isPrime[i])
            ans.push_back(i);
    }
}

int main() {
    ll n;
    cin >> n;
	sieve(n); 
    for(ll i=0;i<ans.size();i++)
        cout<<ans[i]<<" ";
    return 0;
}