#include <iostream>
class empty {};
class onebyte {char a;};
template<class sub_expr>
class inherit_again : public sub_expr {
public:
inherit_again() =default;
inherit_again(sub_expr rhs) : sub_expr(std::move(rhs)) {}
};
template<class l, class r>
class demo : private l, private inherit_again<r> {
};
int main() {
std::cout << sizeof(empty)<< '\n';
std::cout << sizeof(onebyte)<< '\n';
std::cout << sizeof(demo<empty, empty>)<< '\n';
std::cout << sizeof(demo<onebyte, empty>)<< '\n';
std::cout << sizeof(demo<empty, onebyte>)<< '\n';
std::cout << sizeof(demo<onebyte, onebyte>)<< '\n';
std::cout << sizeof(demo<empty, demo<onebyte, empty>>)<< '\n';
std::cout << sizeof(demo<demo<empty, empty>, demo<onebyte, empty>>)<< '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgZW1wdHkge307CmNsYXNzIG9uZWJ5dGUge2NoYXIgYTt9OwoKdGVtcGxhdGU8Y2xhc3Mgc3ViX2V4cHI+CmNsYXNzIGluaGVyaXRfYWdhaW4gOiBwdWJsaWMgc3ViX2V4cHIgewpwdWJsaWM6Cglpbmhlcml0X2FnYWluKCkgPWRlZmF1bHQ7Cglpbmhlcml0X2FnYWluKHN1Yl9leHByIHJocykgOiBzdWJfZXhwcihzdGQ6Om1vdmUocmhzKSkge30KfTsKCnRlbXBsYXRlPGNsYXNzIGwsIGNsYXNzIHI+CmNsYXNzIGRlbW8gOiBwcml2YXRlIGwsIHByaXZhdGUgaW5oZXJpdF9hZ2FpbjxyPiB7Cn07CgppbnQgbWFpbigpIHsKICAgIHN0ZDo6Y291dCA8PCBzaXplb2YoZW1wdHkpPDwgJ1xuJzsKICAgIHN0ZDo6Y291dCA8PCBzaXplb2Yob25lYnl0ZSk8PCAnXG4nOwogICAgc3RkOjpjb3V0IDw8IHNpemVvZihkZW1vPGVtcHR5LCBlbXB0eT4pPDwgJ1xuJzsKICAgIHN0ZDo6Y291dCA8PCBzaXplb2YoZGVtbzxvbmVieXRlLCBlbXB0eT4pPDwgJ1xuJzsKICAgIHN0ZDo6Y291dCA8PCBzaXplb2YoZGVtbzxlbXB0eSwgb25lYnl0ZT4pPDwgJ1xuJzsKICAgIHN0ZDo6Y291dCA8PCBzaXplb2YoZGVtbzxvbmVieXRlLCBvbmVieXRlPik8PCAnXG4nOwogICAgc3RkOjpjb3V0IDw8IHNpemVvZihkZW1vPGVtcHR5LCBkZW1vPG9uZWJ5dGUsIGVtcHR5Pj4pPDwgJ1xuJzsKICAgIHN0ZDo6Y291dCA8PCBzaXplb2YoZGVtbzxkZW1vPGVtcHR5LCBlbXB0eT4sIGRlbW88b25lYnl0ZSwgZW1wdHk+Pik8PCAnXG4nOwp9