#include <bits/stdc++.h>
#define sz(x) ((int)(x).size())
#define all(x) begin(x), end(x)
#ifdef memset0
#define log(...) fprintf(stderr, __VA_ARGS__)
#else
#define endl '\n'
#define log(...) (void(0))
#endif
using namespace std;
using ll = long long;
using lf = long double;
using ull = unsigned long long;
const int N = 1e3 + 9;
int n, g[N][N];
int main() {
#ifdef memset0
freopen("H.in", "r", stdin);
#endif
cin.tie(0)->sync_with_stdio(0);
cin >> n;
for (int i = 0; (1 << i) < n; ++i) {
for (int j = 0; j < n; j += (1 << i + 1)) {
for (int u = j; u < j + (1 << i) && u < n; ++u)
for (int v = j + (1 << i); v < (j + (1 << i + 1)) && v < n; ++v) {
g[u][v] = g[v][u] = i;
}
}
}
for (int i = 0; i < n; ++i)
for (int j = i + 1; j < n; ++j) {
cout << g[i][j] << " \n"[j == n - 1];
}
}