#include <stdio.h>
#define CREATE_0() printf("0\n")
#define CREATE_1(x1) printf("1\n")
#define CREATE_2(x1,x2) printf("2\n")
#define CREATE_3(x1,x2,x3) printf("3\n")
#define CREATE_4(x1,x2,x3,x4) printf("4\n")
#define CREATE_5(x1,x2,x3,x4,x5) printf("5\n")
#define FUNC_CHOOSER(_f1, _f2, _f3, _f4, _f5, _f6, ...) _f6
#define FUNC_RECOMPOSER(argsWithParentheses) FUNC_CHOOSER argsWithParentheses
#define CHOOSE_FROM_ARG_COUNT(...) FUNC_RECOMPOSER((__VA_ARGS__, CREATE_5, CREATE_4, CREATE_3, CREATE_2, CREATE_1, ))
#define NO_ARG_EXPANDER() ,,,,,CREATE_0
#define MACRO_CHOOSER(...) CHOOSE_FROM_ARG_COUNT(NO_ARG_EXPANDER __VA_ARGS__ ())
#define create(...) MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__)
int main() {
create();
create(1);
create(1, 2);
create(1, 2, 3,);
create(1, 2, 3, 4);
create(1, 2, 3, 4, 5);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIENSRUFURV8wKCkgICAgICAgICAgICAgICBwcmludGYoIjBcbiIpCiNkZWZpbmUgQ1JFQVRFXzEoeDEpICAgICAgICAgICAgIHByaW50ZigiMVxuIikKI2RlZmluZSBDUkVBVEVfMih4MSx4MikgICAgICAgICAgcHJpbnRmKCIyXG4iKQojZGVmaW5lIENSRUFURV8zKHgxLHgyLHgzKSAgICAgICBwcmludGYoIjNcbiIpCiNkZWZpbmUgQ1JFQVRFXzQoeDEseDIseDMseDQpICAgIHByaW50ZigiNFxuIikKI2RlZmluZSBDUkVBVEVfNSh4MSx4Mix4Myx4NCx4NSkgcHJpbnRmKCI1XG4iKQoKI2RlZmluZSBGVU5DX0NIT09TRVIoX2YxLCBfZjIsIF9mMywgX2Y0LCBfZjUsIF9mNiwgLi4uKSBfZjYKI2RlZmluZSBGVU5DX1JFQ09NUE9TRVIoYXJnc1dpdGhQYXJlbnRoZXNlcykgRlVOQ19DSE9PU0VSIGFyZ3NXaXRoUGFyZW50aGVzZXMKI2RlZmluZSBDSE9PU0VfRlJPTV9BUkdfQ09VTlQoLi4uKSBGVU5DX1JFQ09NUE9TRVIoKF9fVkFfQVJHU19fLCBDUkVBVEVfNSwgQ1JFQVRFXzQsIENSRUFURV8zLCBDUkVBVEVfMiwgQ1JFQVRFXzEsICkpCiNkZWZpbmUgTk9fQVJHX0VYUEFOREVSKCkgLCwsLCxDUkVBVEVfMAojZGVmaW5lIE1BQ1JPX0NIT09TRVIoLi4uKSBDSE9PU0VfRlJPTV9BUkdfQ09VTlQoTk9fQVJHX0VYUEFOREVSIF9fVkFfQVJHU19fICgpKQojZGVmaW5lIGNyZWF0ZSguLi4pIE1BQ1JPX0NIT09TRVIoX19WQV9BUkdTX18pKF9fVkFfQVJHU19fKQoKaW50IG1haW4oKSB7CgljcmVhdGUoKTsKCWNyZWF0ZSgxKTsKCWNyZWF0ZSgxLCAyKTsKCWNyZWF0ZSgxLCAyLCAzLCk7CgljcmVhdGUoMSwgMiwgMywgNCk7CgljcmVhdGUoMSwgMiwgMywgNCwgNSk7CgoJcmV0dXJuIDA7Cn0K