def tracta_llista(lpar):
    dini = {}
    for par in lpar:
        inicial = par[0]
        if inicial not in dini:
            dini[inicial] = [par]
        else:
            if par not in dini[inicial]:
                dini[inicial].append(par)
    for inicial in dini:
        dini[inicial].sort()
    return dini
    
def inicials_1(text):
    text = text.lower()
    lpar = text.split()
    return tracta_llista(lpar)

def inicials_2(text):
    signes = '.:,;!?'
    text = text.lower()
    lpar = text.split()
    lparnova = []
    for par in lpar:
        if "'" not in par:
            if par[-1] in signes:
                lparnova.append(par[:-1])
            else:
                lparnova.append(par)
        else:
            p1, p2 = par.split("'")
            lparnova.append(p1)
            if p2[-1] in signes:
                lparnova.append(p2[:-1])
            else:
                lparnova.append(p2)
    return tracta_llista(lparnova)

            
