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 = (min(p1, p2), max(p1, p2))
            if sect not in transitD:
                transitD[sect] = 1
            else:
                transitD[sect] += 1
    return transitD

def gen_high_transitL(transitD, n):
    lit = transitD.items()
    lit2 = sorted(lit, key=lambda x: (-x[1], x[0]))
    high_transitL = []
    for x in lit2:
        if x[1] > n:
            high_transitL.append(x[0])
    return high_transitL

