struct point { int x, y; point(int x, int y) : x(x), y(y) {} point add(point p) { return point(x+p.x, y+p.y); } };