#include <cstdio>
template <int l, int r, int *a> struct For { static int value; };
template <int l, int r, int *a> int For<l, r, a>::value = For<l, (l + r) / 2, a>::value + For<(l + r) / 2 + 1, r, a>::value;
template <int l, int *a> struct For<l, l, a> { static int value; };
template <int l, int *a> int For<l, l, a>::value = (a[l] = l);
template <int n> struct Calc
{
static int res[n];
static int get( int i );
static int value;
};
template <int n> int Calc<n>::value = For<0, n - 1, res>::value;
template <int n> int Calc<n>::get( int i ) { return res[i]; }
template <int n> int Calc<n>::res[n];
static const int M = 100;
template struct Calc<M>;
int main()
{
for (int i = 0; i < M; i++)
printf("%d ", Calc<M>::get(i));
return 0;
}