def gen_transitD(trajD):
    transitD = {}
    for cust in trajD:
        for i in range(len(trajD[cust])-1):
            p1 = trajD[cust][i]
            p2 = trajD[cust][i+1]
            sect = (p1, p2)
            if sect not in transitD:
                transitD[sect] = [cust]
            else:
                transitD[sect].append(cust)
    for ds in transitD:
        transitD[ds].sort()
    return transitD

def sort_transitD(transitD):
    lit = transitD.items()    
    return sorted(lit, key=lambda x: (-len(x[1]), x[0]))

def print_transitD(transitD):
    for k,v in transitD.items():
        print(k,' - ',v)
        
def print_transitL(transitL):
    for k, v in transitL:
        print(k,': ',v)
