





def     _lowerCAmelCase		(  _lowerCAmelCase = 5_0     ):
   '''simple docstring'''


   A_     :				Union[str, Any]			      =	[1] * (length + 1)

   for row_length in range(length + 1     ):
      for tile_length in range(2  ,5     ):
         for tile_start in range(row_length - tile_length + 1     ):
            ways_number[row_length] += ways_number[
                row_length - tile_start - tile_length
            ]

   return ways_number[length]


if __name__ == "__main__":
      print(f'''{solution() = }''')













def     _lowerCAmelCase		(  _lowerCAmelCase     ):
   '''simple docstring'''


   A_     :				Union[str, Any]			      =	[0] * len(_lowerCAmelCase     )
   A_     :				Optional[int]			      =	[]
   A_     :				str			      =	[]
   A_     :				Dict			      =	0

   for values in graph.values():
      for i in values:
         indegree[i] += 1

   for i in range(len(_lowerCAmelCase     )     ):
      if indegree[i] == 0:
         queue.append(_lowerCAmelCase     )

   while queue:
      A_     :				List[str]			      =	queue.pop(0     )
      cnt += 1
      topo.append(_lowerCAmelCase     )
      for x in graph[vertex]:
         indegree[x] -= 1
         if indegree[x] == 0:
            queue.append(_lowerCAmelCase     )

   if cnt != len(_lowerCAmelCase     ):
      print("""Cycle exists"""     )
   else:
      print(_lowerCAmelCase     )


# Adjacency List of Graph
_lowerCAmelCase 				=     {0: [1, 2], 1: [3], 2: [3], 3: [4, 5], 4: [], 5: []}







topological_sort(graph)






