#include <stdio.h>
#include <iostream>
#define LOG_TYPE0(format, ...) do { \
printf(format, __VA_ARGS__); \
} while (0) \

#define LOG_TYPE1(format, args...) do { \
printf(format, args); \
} while (0) \

#define LOG_TYPE2(format, ...) do { \
printf(format, ##__VA_ARGS__); \
} while (0) \

#define LOG_TYPE3(format, args...) do { \
printf(format, ##args); \
} while (0) \

#define LOG(x) printf("LOG "#x" %d\n", x);
int main() {
LOG_TYPE0("hello %d \n", 0);
LOG_TYPE1("hello %d \n", 1);
LOG_TYPE2("hello %d \n", 2);
LOG_TYPE3("hello %d \n", 3);
LOG(10);

return 0;
}