def gen_dances_D(dni_D, dni_dan_D):
    D = {}
    for dni, dan_L in dni_dan_D.items():
        for dan in dan_L:
            upd_dances_D(D, dni, dan, dni_D)
    # dlli_ord(D)
    return D

def upd_dances_D(D, dni, dan, dni_D):
    if dni in dni_D:
        namecity = dni_D[dni]
    else:
        namecity = (dni, '?')
    if dan not in D:
        D[dan] = [namecity]
    else:
        D[dan].append(namecity)
    
def sort_dances_D(d):
    for l in d.values():
        l.sort(key=lambda x: (x[1], x[0]))
