class MyCalendar {
public:
MyCalendar() {
}
bool book(int start, int end) {
auto it = m.lower_bound(start);
if (it != m.cend() && it->first < end) return false;
if (it != m.cbegin() && (--it)->second > start) return false;
m[start] = end;
return true;
}
private:
map m;
};