freq, group, and maxfreq.push(val): Increment freq[val]. Update maxfreq if freq[val] is greater than maxfreq. Push val onto group[freq[val]].pop(): Pop an element from group[maxfreq]. Decrement freq[val] of the popped element. If group[maxfreq] is empty, decrement maxfreq. Return the popped element.