#include <set>
#include <iostream>
struct A {
int i;
A() : i(0) {}
bool operator()(int a, int b)
{
++i;
return a < b;
}
};
int main()
{
A a;
std::set<int, A&> s1( {1, 2, 3}, a);
std::set<int, A&> s2( {4, 5, 6}, a);
std::cout << a.i;
}
I2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEEgewogICAgaW50IGk7CiAgICBBKCkgOiBpKDApIHt9CiAgICBib29sIG9wZXJhdG9yKCkoaW50IGEsIGludCBiKQogICAgewogICAgICAgICsraTsKICAgICAgICByZXR1cm4gYSA8IGI7CiAgICB9Cn07CgppbnQgbWFpbigpCnsgICAgCiAgICBBIGE7CiAgICBzdGQ6OnNldDxpbnQsIEEmPiBzMSggezEsIDIsIDN9LCBhKTsKICAgIHN0ZDo6c2V0PGludCwgQSY+IHMyKCB7NCwgNSwgNn0sIGEpOwogICAgc3RkOjpjb3V0IDw8IGEuaTsKfQ==