def representative_n(mu):
    shape = {(i, j): (i, min(j, mu[i - 1] + 1 - j)) if j !=
             (mu[i - 1] + 1 - j) else (2 * ((i + 1) // 2), j)
             for (i, j) in Partition.shape(mu)}
    word = [
        shape[key] for key in sorted(shape, key=lambda ij: (ij[1], -ij[0]))
    ]
    pairs = defaultdict(list)
    for i, key in enumerate(word):
        pairs[key].append(i + 1)
    w = Permutation()
    for pair in pairs.values():
        i, j = tuple(pair)
        w *= Permutation.transposition(i, j)
    return w
def anti_representative_m(mu):
    t = Tableau(
        {box: i + 1
         for i, box in enumerate(sorted(Partition.shape(mu)))})
    oneline, _ = InsertionAlgorithm.inverse_hecke(t, t)
    return Permutation(*oneline)