#include <iostream>
using namespace std;
#define First Objct t; t
#define Second +0,a() / b()
#define Third ;
struct Objct {
int operator[](int n) { cout << "operator[] called with "<<n<<endl; return n; }
Objct operator+ (int n0) { return *this; }
};
int a() { return 10;}
int b() { return 2;}
int main() {
{
First [ Second ] Third
}
{
First Second Third
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBGaXJzdCBPYmpjdCB0OyB0CiNkZWZpbmUgU2Vjb25kICswLGEoKSAvIGIoKQojZGVmaW5lIFRoaXJkIDsKCnN0cnVjdCBPYmpjdCB7CglpbnQgb3BlcmF0b3JbXShpbnQgbikgeyBjb3V0IDw8ICJvcGVyYXRvcltdIGNhbGxlZCB3aXRoICI8PG48PGVuZGw7IHJldHVybiBuOyB9CglPYmpjdCBvcGVyYXRvcisgKGludCBuMCkgeyByZXR1cm4gKnRoaXM7IH0KfTsKaW50IGEoKSB7IHJldHVybiAxMDt9CmludCBiKCkgeyByZXR1cm4gMjt9CgppbnQgbWFpbigpIHsKCXsKCUZpcnN0IFsgU2Vjb25kIF0gVGhpcmQgCgl9Cgl7CglGaXJzdCBTZWNvbmQgVGhpcmQKCX0KCglyZXR1cm4gMDsKfQ==