#include <stdio.h>
typedef int (*func_t) (int, int);
static int g(func_t fn, int x, int y) {
return (*fn) (x, y);
}
static int f1(int x, int y) {return x + y;}
static int f2(int x, int y) {return x - y;}
static int f3(int x, int y) {return x * y;}
int main(int argc, char *argv[]) {
int c = g(f3, g(f2, 7, 5), g(f1, 7 , 5));
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIGludCAoKmZ1bmNfdCkgKGludCwgaW50KTsKCnN0YXRpYyBpbnQgZyhmdW5jX3QgZm4sIGludCB4LCBpbnQgeSkgewpyZXR1cm4gKCpmbikgKHgsIHkpOwp9CgpzdGF0aWMgaW50IGYxKGludCB4LCBpbnQgeSkge3JldHVybiB4ICsgeTt9CnN0YXRpYyBpbnQgZjIoaW50IHgsIGludCB5KSB7cmV0dXJuIHggLSB5O30Kc3RhdGljIGludCBmMyhpbnQgeCwgaW50IHkpIHtyZXR1cm4geCAqIHk7fQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewppbnQgYyA9IGcoZjMsIGcoZjIsIDcsIDUpLCBnKGYxLCA3ICwgNSkpOwp9