#include <iostream>
using namespace std;
template<typename T>
struct add_const_deep {
using type = const T;
};
template<typename T>
struct add_const_deep<T*> {
using type = typename add_const_deep<T>::type*;
};
template<typename T>
struct add_const_deep<T&> {
using type = typename add_const_deep<T>::type&;
};
int main() {
add_const_deep<int ***>::type a;
***a = 0;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RydWN0IGFkZF9jb25zdF9kZWVwIHsKCXVzaW5nIHR5cGUgPSBjb25zdCBUOwp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RydWN0IGFkZF9jb25zdF9kZWVwPFQqPiB7Cgl1c2luZyB0eXBlID0gdHlwZW5hbWUgYWRkX2NvbnN0X2RlZXA8VD46OnR5cGUqOwp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RydWN0IGFkZF9jb25zdF9kZWVwPFQmPiB7Cgl1c2luZyB0eXBlID0gdHlwZW5hbWUgYWRkX2NvbnN0X2RlZXA8VD46OnR5cGUmOwp9OwoKCmludCBtYWluKCkgewoJYWRkX2NvbnN0X2RlZXA8aW50ICoqKj46OnR5cGUgYTsKCQoJKioqYSA9IDA7CgkKCXJldHVybiAwOwp9