#include <iostream>
#include <utility>
#include <list>
template <typename... Args>
struct prank
: std::integral_constant<std::size_t, 9> {};
template <template <typename...> class C,typename T, typename ...Args>
struct prank<C<T,Args...>>
: std::integral_constant<
std::size_t,
1+ prank<Args...>::value> {};
int main()
{
using T = std::list<int>;
std::cout << prank<T>::value << "\n";
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDx1dGlsaXR5PgogICAgI2luY2x1ZGUgPGxpc3Q+CiAgICAKICAgIHRlbXBsYXRlIDx0eXBlbmFtZS4uLiBBcmdzPgogICAgc3RydWN0IHByYW5rCiAgICAgICAgICAgIDogc3RkOjppbnRlZ3JhbF9jb25zdGFudDxzdGQ6OnNpemVfdCwgOT4ge307CiAgICAKICAgIHRlbXBsYXRlIDx0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4+IGNsYXNzIEMsdHlwZW5hbWUgVCwgdHlwZW5hbWUgLi4uQXJncz4KICAgIHN0cnVjdCBwcmFuazxDPFQsQXJncy4uLj4+CiAgICAgICAgICAgIDogc3RkOjppbnRlZ3JhbF9jb25zdGFudDwKICAgICAgICAgICAgc3RkOjpzaXplX3QsCiAgICAgICAgICAgIDErIHByYW5rPEFyZ3MuLi4+Ojp2YWx1ZT4ge307CiAgICAKICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICB1c2luZyBUID0gc3RkOjpsaXN0PGludD47CiAgICAgICAgc3RkOjpjb3V0IDw8IHByYW5rPFQ+Ojp2YWx1ZSA8PCAiXG4iOwogICAgfQ==