#include <iostream>
using namespace std;
template<typename T,T value>
struct some_template{
static constexpr T val = value;
};
template <template <typename X, X> typename Y>
struct contrived_example{
Y<size_t,30> b;
};
int main() {
std::cout << contrived_example<some_template>().b.val;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCnRlbXBsYXRlPHR5cGVuYW1lIFQsVCB2YWx1ZT4Kc3RydWN0IHNvbWVfdGVtcGxhdGV7CglzdGF0aWMgY29uc3RleHByIFQgdmFsID0gdmFsdWU7Cn07Cgp0ZW1wbGF0ZSA8dGVtcGxhdGUgPHR5cGVuYW1lIFgsIFg+IHR5cGVuYW1lIFk+CnN0cnVjdCBjb250cml2ZWRfZXhhbXBsZXsKCQoJWTxzaXplX3QsMzA+IGI7Cn07CgoKaW50IG1haW4oKSB7CglzdGQ6OmNvdXQgPDwgY29udHJpdmVkX2V4YW1wbGU8c29tZV90ZW1wbGF0ZT4oKS5iLnZhbDsKCglyZXR1cm4gMDsKfQ==