#include<iostream>
int func ()
{
std::cout << "foo()\n";
return 0;
}
void foo1 (int (*pf)()) { pf(); }
void foo2 (int (pf)()) { pf(); }
void foo3 (int pf()) { pf(); }
int main ()
{
foo1(func);
foo2(func);
foo3(func);
}
I2luY2x1ZGU8aW9zdHJlYW0+CgppbnQgZnVuYyAoKQp7CiAgc3RkOjpjb3V0IDw8ICJmb28oKVxuIjsgCiAgcmV0dXJuIDA7Cn0KCnZvaWQgZm9vMSAoaW50ICgqcGYpKCkpIHsgcGYoKTsgfQp2b2lkIGZvbzIgKGludCAocGYpKCkpIHsgcGYoKTsgfQp2b2lkIGZvbzMgKGludCBwZigpKSB7IHBmKCk7IH0KCmludCBtYWluICgpCnsKICBmb28xKGZ1bmMpOwogIGZvbzIoZnVuYyk7CiAgZm9vMyhmdW5jKTsKfQo=