#include <iostream>
template <typename T>
struct big_int
{
T value;
};
template <typename T>
struct small_int
{
T value;
};
typedef big_int<long> bigInt;
typedef small_int<char> smallInt;
class Problematic
{
public:
Problematic(bigInt) {}
Problematic(smallInt) {}
};
int main()
{
std::cout << sizeof(bigInt) << "\n";
std::cout << sizeof(smallInt) << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCBiaWdfaW50CnsKICAgIFQgdmFsdWU7Cn07Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kc3RydWN0IHNtYWxsX2ludAp7CiAgICBUIHZhbHVlOwp9OwoKdHlwZWRlZiBiaWdfaW50PGxvbmc+IGJpZ0ludDsKdHlwZWRlZiBzbWFsbF9pbnQ8Y2hhcj4gc21hbGxJbnQ7CgpjbGFzcyBQcm9ibGVtYXRpYwp7CnB1YmxpYzoKICAgIFByb2JsZW1hdGljKGJpZ0ludCkge30KICAgIFByb2JsZW1hdGljKHNtYWxsSW50KSB7fQp9OwoKaW50IG1haW4oKQp7CiAgICBzdGQ6OmNvdXQgPDwgc2l6ZW9mKGJpZ0ludCkgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCBzaXplb2Yoc21hbGxJbnQpIDw8ICJcbiI7Cn0K