def count_trees(data, route):
    """
    >>> count_trees([
    ...     [False, False, True, True, False, False, False, False, False, False, False],
    ...     [True, False, False, False, True, False, False, False, True, False, False],
    ...     [False, True, False, False, False, False, True, False, False, True, False],
    ...     [False, False, True, False, True, False, False, False, True, False, True],
    ...     [False, True, False, False, False, True, True, False, False, True, False],
    ...     [False, False, True, False, True, True, False, False, False, False, False],
    ...     [False, True, False, True, False, True, False, False, False, False, True],
    ...     [False, True, False, False, False, False, False, False, False, False, True],
    ...     [True, False, True, True, False, False, False, True, False, False, False],
    ...     [True, False, False, False, True, True, False, False, False, False, True],
    ...     [False, True, False, False, True, False, False, False, True, False, True]
    ... ], (3, 1))
    7
    """

    dx, dy = route
    height = len(data)
    width = len(data[0])

    x = 0
    y = 0
    trees = 0

    while y < height:
        if data[y][x]:
            trees += 1

        x = (x + dx) % width
        y += dy

    return trees