#include <iostream>

typedef void (*myfunc)();
const int FUNCS_COUNT = 368;

template<unsigned i>
void print_func() {
    std::cout << i << std::endl;
}

template<unsigned i>
void push_func(myfunc *funcs) {
    funcs[i] = &(print_func<i>);
    push_func<i-1>(funcs);
}

template<>
void push_func<0>(myfunc *funcs) {
    funcs[0] = &(print_func<0>);
}

int main() {
    myfunc funcs[FUNCS_COUNT];
    push_func<FUNCS_COUNT>(funcs);
    for (int i=0; i<FUNCS_COUNT; ++i)
        funcs[i]();
    return 0;
}