Aircall needs to estimate the minimum number of agents required to handle a set of scheduled calls without overlap for the same agent. Given each call's start and end times, return the smallest number of agents needed to handle all calls.
A call occupies an agent during the half-open interval [start, end). Therefore, a call ending at time t does not overlap with a call starting at time t.
Implement min_agents(calls), where calls is a list of two-element lists. Each pair contains integer start and end times, with start < end. Return an integer representing the maximum number of calls active at any moment.
def min_agents(calls):