#include <iostream>
template<typename>
class type {
void _f() {}
template<typename T>
friend void f(type<T>);
};
template<typename T>
void f(type<T> t) {
t._f();
std::cout << "1" << std::endl;
}
template<>
void f(type<char> t) {
t._f();
std::cout << "2" << std::endl;
}
int main() {
type<int> t1;
type<char> t2;
f(t1);
f(t2);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCiAKdGVtcGxhdGU8dHlwZW5hbWU+CmNsYXNzIHR5cGUgewogICAKICAgdm9pZCBfZigpIHt9CiAgIAogICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICBmcmllbmQgdm9pZCBmKHR5cGU8VD4pOyAgIAp9OwogCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnZvaWQgZih0eXBlPFQ+IHQpIHsKICAgdC5fZigpOwogICBzdGQ6OmNvdXQgPDwgIjEiIDw8IHN0ZDo6ZW5kbDsKfQogCnRlbXBsYXRlPD4Kdm9pZCBmKHR5cGU8Y2hhcj4gdCkgewogICB0Ll9mKCk7CiAgIHN0ZDo6Y291dCA8PCAiMiIgPDwgc3RkOjplbmRsOwp9CiAKIAppbnQgbWFpbigpIHsKICAgdHlwZTxpbnQ+IHQxOwogICB0eXBlPGNoYXI+IHQyOwogICBmKHQxKTsKICAgZih0Mik7Cn0K