#include <iostream>
template<typename>
struct type {
template<typename T>
friend void f(type<T>);
};
template<typename T>
void f(type<T>) {
std::cout << "1" << std::endl;
}
void f(type<char>) {
std::cout << "2" << std::endl;
}
int main() {
type<int> t1;
type<char> t2;
f(t1);
f(t2);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKCnRlbXBsYXRlPHR5cGVuYW1lPgpzdHJ1Y3QgdHlwZSB7CiAgIAogICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICBmcmllbmQgdm9pZCBmKHR5cGU8VD4pOyAgIAp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCBmKHR5cGU8VD4pIHsKICAgIHN0ZDo6Y291dCA8PCAiMSIgPDwgc3RkOjplbmRsOwp9Cgp2b2lkIGYodHlwZTxjaGFyPikgewogICBzdGQ6OmNvdXQgPDwgIjIiIDw8IHN0ZDo6ZW5kbDsKfQoKIAppbnQgbWFpbigpIHsKICAgdHlwZTxpbnQ+IHQxOwogICB0eXBlPGNoYXI+IHQyOwogICBmKHQxKTsKICAgZih0Mik7Cn0=