#include <iostream>
template<int D, typename... List>
struct next_call {
static const int val = D;
};
template<typename... List>
struct initial_call{
static const int val = next_call<0, List...>::val;
};
int main() {
std::cout << initial_call<int, float, char>::val << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8aW50IEQsIHR5cGVuYW1lLi4uIExpc3Q+CnN0cnVjdCBuZXh0X2NhbGwgewogICAgIHN0YXRpYyBjb25zdCBpbnQgdmFsID0gRDsKfTsKCnRlbXBsYXRlPHR5cGVuYW1lLi4uIExpc3Q+CnN0cnVjdCBpbml0aWFsX2NhbGx7CiAgICAgc3RhdGljIGNvbnN0IGludCB2YWwgPSBuZXh0X2NhbGw8MCwgTGlzdC4uLj46OnZhbDsKfTsKCmludCBtYWluKCkgewoJc3RkOjpjb3V0IDw8IGluaXRpYWxfY2FsbDxpbnQsIGZsb2F0LCBjaGFyPjo6dmFsIDw8IHN0ZDo6ZW5kbDsKCQoJcmV0dXJuIDA7Cn0=