def depth_limited_search(graph, start, goal, depth_limit):
    def dls(node, depth):
        if depth > depth_limit:
            return False
        if node == goal:
            return True
        for neighbor in graph.get(node, []):
            if dls(neighbor, depth + 1):
                return True
        return False

    return dls(start, 0)

# Example Usage
graph = {
    'A': ['B', 'C'],
    'B': ['D', 'E'],
    'C': ['F'],
    'D': [],
    'E': [],
    'F': []
}
print(depth_limited_search(graph, 'A', 'E', 2))  # Output: True
print(depth_limited_search(graph, 'A', 'F', 1))  # Output: False