#include <set>
#include <map>
#include <iostream>
struct Vector
{
std::pair<int, int> xy;
Vector(int x_ = 0, int y_ = 0) : xy(std::make_pair(x_, y_)) {}
bool operator<(const Vector& rhs) const
{
return xy < rhs.xy;
}
};
std::set<Vector> geometry;
int main()
{
geometry.insert(Vector(1,2));
geometry.insert(Vector(1,5));
geometry.insert(Vector(1, 8));
geometry.insert(Vector(1, 8));
geometry.insert(Vector(1, 8)); // repeated
geometry.insert(Vector(1, 8)); // repeated
geometry.insert(Vector(2, 2));
std::cout << geometry.size();
}
I2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IFZlY3Rvcgp7CiAgICBzdGQ6OnBhaXI8aW50LCBpbnQ+IHh5OwogICAgVmVjdG9yKGludCB4XyA9IDAsIGludCB5XyA9IDApIDogeHkoc3RkOjptYWtlX3BhaXIoeF8sIHlfKSkge30KICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFZlY3RvciYgcmhzKSBjb25zdAogICAgewogICAgICAgIHJldHVybiB4eSA8IHJocy54eTsKICAgIH0KfTsKCnN0ZDo6c2V0PFZlY3Rvcj4gZ2VvbWV0cnk7CgppbnQgbWFpbigpCnsKICAgIGdlb21ldHJ5Lmluc2VydChWZWN0b3IoMSwyKSk7CiAgICBnZW9tZXRyeS5pbnNlcnQoVmVjdG9yKDEsNSkpOwogICAgZ2VvbWV0cnkuaW5zZXJ0KFZlY3RvcigxLCA4KSk7CiAgICBnZW9tZXRyeS5pbnNlcnQoVmVjdG9yKDEsIDgpKTsKICAgIGdlb21ldHJ5Lmluc2VydChWZWN0b3IoMSwgOCkpOyAgLy8gcmVwZWF0ZWQKICAgIGdlb21ldHJ5Lmluc2VydChWZWN0b3IoMSwgOCkpOyAgLy8gcmVwZWF0ZWQKICAgIGdlb21ldHJ5Lmluc2VydChWZWN0b3IoMiwgMikpOwogICAgCiAgICBzdGQ6OmNvdXQgPDwgZ2VvbWV0cnkuc2l6ZSgpOwp9