Vasya and Petya are playing a simple game. Vasya thought of number *x* between 1 and *n*, and Petya tries to guess the number.

Petya can ask questions like: "Is the unknown number divisible by number *y*?".

The game is played by the following rules: first Petya asks all the questions that interest him (also, he can ask no questions), and then Vasya responds to each question with a 'yes' or a 'no'. After receiving all the answers Petya should determine the number that Vasya thought of.

Unfortunately, Petya is not familiar with the number theory. Help him find the minimum number of questions he should ask to make a guaranteed guess of Vasya's number, and the numbers *y*<sub class="lower-index">*i*</sub>, he should ask the questions about.
A single line contains number *n* (1 ≤ *n* ≤ 10<sup class="upper-index">3</sup>).
#include <bits/stdc++.h>
using namespace std;

#define ar array
#define ll long long int
#define ld long double
#define sz(x) ((int)x.size())
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()
#define pb push_back
#define vll vector<long long int>
#define vi vector<int>

const long long MAX_SIZE = 1000001;
const int MAX_N = 1e5 + 5;
const ll MOD = 1e9 + 7;
const ll INF = 1e9 + 7;
const ld EPS = 1e-9;
//---------------------------------------Functions-------------------------------------//
bool isPrime(int n)
{
    // Corner case
    if (n <= 1)
        return false;
 
    // Check from 2 to square root of n
    for (int i = 2; i <= sqrt(n); i++)
        if (n % i == 0)
            return false;
 
    return true;
}


vector<ll> SieveOfEratosthenes(int n)
{
    vector <ll> ans;
    bool prime[n + 1];
    memset(prime, true, sizeof(prime));
 
    for (int p = 2; p * p <= n; p++)
    {
        if (prime[p] == true)
        {
            for (int i = p * p; i <= n; i += p)
                prime[i] = false;
        }
    }
    for (int p = 2; p <= n; p++)
        if (prime[p])
            ans.pb(p);
    return ans;
}


//------------------------------------------Code-------------------------------------------//

void solve()
{
    int n;
    vll ans;
    cin >> n;
    for (int i = 2; i <= n; i++)
    {
        if (isPrime(i))
        {
            int q = i;
            while (q <= n)
            {
                ans.pb(q);
                q *= i;
            }
        }
    }
    cout << sz(ans) << endl;
    for(auto a : ans)
        cout << a << " ";
}
//-----------------------------------------------------------------------------------------//

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    // int tc = 1;
    // cin >> tc;
    // for (int t = 1; t <= tc; t++) {
    //     // cout << "Case #" << t << ": ";
    //     solve();
    // }
    solve();
    return 0;
}
