def collect_letters(task: dict) -> str:
    """
    Alle verwendeten Buchstaben in der Aufgabe sammeln.
    Die Buchstaben werden sortiert in optimaler Lösungsreihenfolge.
    Zuerst kommen die Buchstaben, die rechts in den Summen benötigt werden.
    Sind die ersten Buchstaben bekannt, können weitere Stellen durch
    rechnen gefunden werden.
    :param task: Die Aufgabe.
    :return: Alle Buchstaben.
    """
    result = []
    # Von rechts die Buchstaben in den Summanden
    for index in reversed(range(len(task["calculate_letter_sum"]))):
        for summand in task["summands"]:
            c = summand[index]
            if c.isalpha() and c not in result:
                result.append(c)
    # Dann die Buchstaben in der Summe
    for c in task["calculate_letter_sum"]:
        if c.isalpha() and c not in result:
            result.append(c)
    return "".join(result)