#define so extern struct _IO_FILE *stdout;
#define m(x) int main() { x }
#define p(x) fputs(x, stdout);
#define pe(x) fputs(x, stdout); putchar(10);
#define q(x) fputs(# x, stdout);
#define _q "#define q(x) fputs(# x, stdout);"
#define a(x) fputs("#define ", stdout); fputs(# x, stdout); p(" "); q(x); putchar(10);
#define _a "#define a(x) fputs(\"#define \", stdout); fputs(# x, stdout); p(\" \"); q(x); putchar(10);"
#define g "m( so a(so) a(m(x)) a(p(x)) a(pe(x)) pe(_q) a(_q) pe(_a) a(_a) a(g) pe(g) )"
m( so a(so) a(m(x)) a(p(x)) a(pe(x)) pe(_q) a(_q) pe(_a) a(_a) a(g) pe(g) )

