#include <iostream>
#include <cstddef>
using namespace std;
template<typename T>
void foo(T){}
template<>
void foo<int>(int) { cout << "Integer" << endl; }
template<>
void foo<void*>(void*) { cout << "Pointer" << endl; }
int main() {
foo(NULL);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGRlZj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnZvaWQgZm9vKFQpe30KCnRlbXBsYXRlPD4Kdm9pZCBmb288aW50PihpbnQpIHsgY291dCA8PCAiSW50ZWdlciIgPDwgZW5kbDsgfQoKdGVtcGxhdGU8Pgp2b2lkIGZvbzx2b2lkKj4odm9pZCopIHsgY291dCA8PCAiUG9pbnRlciIgPDwgZW5kbDsgfQoKaW50IG1haW4oKSB7Cglmb28oTlVMTCk7CglyZXR1cm4gMDsKfQ==