#include <stdio.h>

#include <algorithm>
#include <iostream>
using namespace std;
#define For(i, a, b) for (int i = a; i <= (b); ++i)
#define Rof(i, a, b) for (int i = a; i >= (b); --i)
#define all(a) a.begin(), a.end()
#define ll long long
#define vi vector<int>
#define pii pair<int, int> pii

const int mod = 998244353;

inline int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
inline long long input() {
    long long x = 0;
    bool f = 0;
    char ch = 0;
    while (!isdigit(ch)) f |= ch == '-', ch = getchar();
    while (isdigit(ch)) x = (x << 3) + (x << 1) + (ch ^ 48), ch = getchar();
    return f ? -x : x;
}

const int N = 1e5 + 5;
int n, m, k;
int a[N], b[N], f[N];

void work() {
    ll mx = 101;
    For(i, 1, 4) { mx = min(mx, input()); }
    cout << mx;
}

signed main() {
#ifndef ONLINE_JUDGE
    freopen("test.in", "r", stdin);
    freopen("test.out", "w", stdout);
#endif
    work();
    return 0;
}
#include <bits/stdc++.h>

using namespace std;
 
typedef long long ll;
typedef long double ld;
 
typedef pair<ll, ll> pt;
 
#define MOD 1000000007

int main() {
	cin.tie(0);
	ios::sync_with_stdio(false);

	int N;
	cin >> N;

	vector<int> ans(N, 2);
	ans[0] = 1;

	for(int i = 2; i <= N; i++) {
		for(int j = 2; i * j <= N; j++) {
			ans[i * j - 1] = ans[i - 1] + 1;
		}
	}

	for(int i = 0; i < N; i++) cout << ans[i] << " ";
	cout << endl;
}