# include <iostream>
using namespace std;
#define VA_NUM_ARGS(...) VA_NUM_ARGS_IMPL_((0,__VA_ARGS__, 5,4,3,2,1))
#define VA_NUM_ARGS_IMPL_(tuple) VA_NUM_ARGS_IMPL tuple
#define VA_NUM_ARGS_IMPL(_0,_1,_2,_3,_4,_5,N,...) N
#define macro_dispatcher(macro, ...) macro_dispatcher_(macro, VA_NUM_ARGS(__VA_ARGS__))
#define macro_dispatcher_(macro, nargs) macro_dispatcher__(macro, nargs)
#define macro_dispatcher__(macro, nargs) macro_dispatcher___(macro, nargs)
#define macro_dispatcher___(macro, nargs) macro ## nargs
#define DBN(...) macro_dispatcher(DBN, __VA_ARGS__)(__VA_ARGS__)
#define DBN1(a) cerr<<#a<<"="<<(a)<<"\n"
#define DBN2(a,b) cerr<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<"\n"
#define DBN3(a,b,c) cerr<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<", "<<#c<<"="<<(c)<<"\n"
#define DBN4(a,b,c,d) cerr<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<", "<<#c<<"="<<(c)<<", "<<#d<<"="<<(d)<<"\n"
// ...
int main()
{
int x = 5, y = 10;
DBN(x, y, x*y+2);
DBN(x+1, y/x);
return 0;
}
IyBpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgVkFfTlVNX0FSR1MoLi4uKSBWQV9OVU1fQVJHU19JTVBMXygoMCxfX1ZBX0FSR1NfXywgNSw0LDMsMiwxKSkKI2RlZmluZSBWQV9OVU1fQVJHU19JTVBMXyh0dXBsZSkgVkFfTlVNX0FSR1NfSU1QTCB0dXBsZQojZGVmaW5lIFZBX05VTV9BUkdTX0lNUEwoXzAsXzEsXzIsXzMsXzQsXzUsTiwuLi4pIE4KCiNkZWZpbmUgbWFjcm9fZGlzcGF0Y2hlcihtYWNybywgLi4uKSBtYWNyb19kaXNwYXRjaGVyXyhtYWNybywgVkFfTlVNX0FSR1MoX19WQV9BUkdTX18pKQojZGVmaW5lIG1hY3JvX2Rpc3BhdGNoZXJfKG1hY3JvLCBuYXJncykgbWFjcm9fZGlzcGF0Y2hlcl9fKG1hY3JvLCBuYXJncykKI2RlZmluZSBtYWNyb19kaXNwYXRjaGVyX18obWFjcm8sIG5hcmdzKSBtYWNyb19kaXNwYXRjaGVyX19fKG1hY3JvLCBuYXJncykKI2RlZmluZSBtYWNyb19kaXNwYXRjaGVyX19fKG1hY3JvLCBuYXJncykgbWFjcm8gIyMgbmFyZ3MKCiNkZWZpbmUgREJOKC4uLikgbWFjcm9fZGlzcGF0Y2hlcihEQk4sIF9fVkFfQVJHU19fKShfX1ZBX0FSR1NfXykKCiNkZWZpbmUgREJOMShhKQkJCWNlcnI8PCNhPDwiPSI8PChhKTw8IlxuIgojZGVmaW5lIERCTjIoYSxiKQkJY2Vycjw8I2E8PCI9Ijw8KGEpPDwiLCAiPDwjYjw8Ij0iPDwoYik8PCJcbiIKI2RlZmluZSBEQk4zKGEsYixjKQkJY2Vycjw8I2E8PCI9Ijw8KGEpPDwiLCAiPDwjYjw8Ij0iPDwoYik8PCIsICI8PCNjPDwiPSI8PChjKTw8IlxuIgojZGVmaW5lIERCTjQoYSxiLGMsZCkJY2Vycjw8I2E8PCI9Ijw8KGEpPDwiLCAiPDwjYjw8Ij0iPDwoYik8PCIsICI8PCNjPDwiPSI8PChjKTw8IiwgIjw8I2Q8PCI9Ijw8KGQpPDwiXG4iCi8vIC4uLgoKCmludCBtYWluKCkKewoJaW50IHggPSA1LCB5ID0gMTA7CgoJREJOKHgsIHksIHgqeSsyKTsKIAlEQk4oeCsxLCB5L3gpOwoKCXJldHVybiAwOwp9CgoKCg==