Assuming we have some rules for having multiple max frequent numbers,
Deque to track insertion order.
Need hashmap<num, cnt> to track frequency cnt.
Need treemap<cnt, TreeSet of nums> to order frequency groups.
add(): insert to back of deque, update treemap by getting the cnt from map and removing from current cnt group. Add to cnt+1 group. Update hashmap.
remove(): remove front of deque. Do similar process as add, but opposite.
getMaxFreqNumber(): return tail of our treemap, tail of our treeset.
O(logn) add, remove, getMaxFreqNumber().