//#include <atcoder/all>
#include <bits/stdc++.h>
//using namespace atcoder;
using namespace std;
typedef long long ll;

#define MOD (long long)(1e9+7)
#define INF (1LL<<60)
#define rep(i,n) for(ll i = 0; i < (n); i++)
#define rep1(i,n) for(ll i = 1; i <= (n); i++)

template<class T> inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
template<class T> inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}

// k番目に小さな要素
ll select(vector<ll> &a, ll k) {
  for (ll l = 0, r = a.size()-1; l <= r; ) {
    ll p = a[(l+r)/2];
    ll i = l-1, j = r+1;
    while (1) {
      while (a[++i] < p);
      while (a[--j] > p);
      if (i >= j) break;
      swap(a[i], a[j]);
    }
    if (k == i-l) return a[i];
    else if (k < i-l) { r = i-1; }
    else if (k > i-l) { k -= (i-l+1); l = j+1; }
  }
  return -99999999; // k < 0 || k >= n
}

// 最大公約数
ll gcd(ll a, ll b)
{
  if(b == 0) return a;
  return gcd(b, a % b);
}

// mod m におけるa の逆元
ll modinv(ll a, ll m) {
  ll b = m, u = 1, v = 0;
  while (b) {
    ll t = a / b;
    a -= t * b; swap(a, b);
    u -= t * v; swap(u, v);
  }
  u %= m;
  if (u < 0) u += m;
  return u;
}

// 素因数分解
vector<pair<ll, ll>> prim;
void pf(ll n)
{
  ll s = sqrt(n);
  ll r = 0;
  for(ll i = 2; i <= s; i++) {
    if((n % i) == 0) {
      r = 0;
      do {
	r++;
	n = n / i;
      } while((n % i) == 0);
      prim.push_back({i, r});
    }
  }
  if(n > s) {
    prim.push_back({n, 1});
  }
}

// ２項係数
/*
ll ncrmod(ll n, ll r)
{
  ll ans;
  
  return ans;
}
*/

// 繰り返し二乗法
ll powmod(int a, int n){//aのn乗を計算します(MOD)。
  ll x = 1;
  while(n > 0){//全てのbitが捨てられるまで。
    if(n&1){//1番右のbitが1のとき。
      x = (x*a) % MOD;
    }
    a = (a*a) % MOD;
    n >>= 1;//bit全体を右に1つシフトして一番右を捨てる。
  }
  return x;
}





void solve()
{
  ll N; cin >> N;
  // ll N, K; cin >> N >> K;
  // ll x, y, z; cin >> x >> y >> z;
  // ll a, b, c; cin >> a >> b >> c;
  // string s; cin >> s;
  vector<ll> a(N + 1);

  rep1(i, N) {
	ll cnt = 0;
	ll mx = 0;
	//	cnt = (i == 1) ? 0 : 1;
	for(ll j = 1; j * j <= i; j++) {
	  if(i % j == 0) {
		chmax(mx, a[j]);
		if(j* j != i) 		chmax(mx, a[i / j]);
	  }
	}
	a[i] = mx + 1;
	//cout << "(" << i << ")" << cnt << " ";
	cout << a[i] << " ";
	
  }
  
  cout << "\n";

  
}


int main(void)
{
  // ll t; cin >> t; rep(i, t)
  solve();
}

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main()
{
    int n;
    cin >> n;
    cout << (n + 99) / 100 << endl;
    return 0;
}