#include <iostream>
class InnerPoint
{
private:
int value;
public:
InnerPoint(int value) : value(value) { }
int operator[](int b)
{
return value * b;
}
};
class Point
{
private:
int x;
int y;
public:
Point(int x, int y) : x(x), y(y) { }
InnerPoint operator[](int a)
{
int value = x + y + a;
return InnerPoint(value);
}
};
int main()
{
Point point(2, 4);
std::cout << point[3][5] << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgSW5uZXJQb2ludAp7CnByaXZhdGU6CiAgICBpbnQgdmFsdWU7CgpwdWJsaWM6CiAgICBJbm5lclBvaW50KGludCB2YWx1ZSkgOiB2YWx1ZSh2YWx1ZSkgeyB9CgogICAgaW50IG9wZXJhdG9yW10oaW50IGIpCiAgICB7CiAgICAgICAgcmV0dXJuIHZhbHVlICogYjsKICAgIH0KfTsKCmNsYXNzIFBvaW50CnsKcHJpdmF0ZToKICAgIGludCB4OwogICAgaW50IHk7CgpwdWJsaWM6CiAgICBQb2ludChpbnQgeCwgaW50IHkpIDogeCh4KSwgeSh5KSB7IH0KCiAgICBJbm5lclBvaW50IG9wZXJhdG9yW10oaW50IGEpCiAgICB7CiAgICAgICAgaW50IHZhbHVlID0geCArIHkgKyBhOwoKICAgICAgICByZXR1cm4gSW5uZXJQb2ludCh2YWx1ZSk7CiAgICB9Cn07CgppbnQgbWFpbigpCnsKICAgIFBvaW50IHBvaW50KDIsIDQpOwoKICAgIHN0ZDo6Y291dCA8PCBwb2ludFszXVs1XSA8PCAiXG4iOwp9