from typing import List
from typing import Tuple


def get_matrix_diags(matrix: List[List[str]]) -> List[Tuple[int, int]]:
    """
    Returns a list of all the diagonals for the given matrix appropriate to the
    e4 route. The diagonals are returned in order and can be traversed to form
    the message or decrypt an e4 matrix.
    """
    row_count, col_count = len(matrix), len(matrix[0])

    diags = []
    # Every element in the last column is the start of a diagonal
    # List is reversed to keep order of diagonals
    for i in list(range(row_count))[::-1]:
        diags.append((i, col_count-1))

    # Every element in the first row is also the start of a diagonal
    for j in list(range(col_count))[::-1]:
        if (0, j) not in diags:
            diags.append((0, j))

    return diags