




'''simple docstring'''
from dataclasses import dataclass
from enum import Enum
from typing import List, Optional, Union

import numpy as np
import PIL
from PIL import Image

from ...utils import BaseOutput, is_torch_available, is_transformers_available
@dataclass
class 					__UpperCAmelCase							(    UpperCamelCase_							):



					'''simple docstring'''





					_UpperCamelCase  	=		{
					    """sld_warmup_steps""": 15,
					    """sld_guidance_scale""": 20,
					    """sld_threshold""": 0.0,
					    """sld_momentum_scale""": 0.0,
					    """sld_mom_beta""": 0.0,
					}
					_UpperCamelCase  	=		{
					    """sld_warmup_steps""": 10,
					    """sld_guidance_scale""": 1_000,
					    """sld_threshold""": 0.0_1,
					    """sld_momentum_scale""": 0.3,
					    """sld_mom_beta""": 0.4,
					}
					_UpperCamelCase  	=		{
					    """sld_warmup_steps""": 7,
					    """sld_guidance_scale""": 2_000,
					    """sld_threshold""": 0.0_2_5,
					    """sld_momentum_scale""": 0.5,
					    """sld_mom_beta""": 0.7,
					}
					_UpperCamelCase  	=		{
					    """sld_warmup_steps""": 0,
					    """sld_guidance_scale""": 5_000,
					    """sld_threshold""": 1.0,
					    """sld_momentum_scale""": 0.5,
					    """sld_mom_beta""": 0.7,
					}





@dataclass
class 					__UpperCAmelCase							(    UpperCamelCase_							):



					'''simple docstring'''





					_UpperCamelCase  	=		42
					_UpperCamelCase  	=		42
					_UpperCamelCase  	=		42
					_UpperCamelCase  	=		42


if is_transformers_available() and is_torch_available():
							from .pipeline_stable_diffusion_safe import StableDiffusionPipelineSafe
							from .safety_checker import SafeStableDiffusionSafetyChecker










'''simple docstring'''
from __future__ import annotations





def  lowerCamelCase(       SCREAMING_SNAKE_CASE_    )		->		Optional[int]:
			global graph, reversed_graph, scc, component, visit, stack
			if visit[u]:
						return
			A_       		=   True
			for v in graph[u]:
						dfs(SCREAMING_SNAKE_CASE_    )
			stack.append(SCREAMING_SNAKE_CASE_    )





def  lowerCamelCase(       SCREAMING_SNAKE_CASE_    )		->		List[Any]:
			global graph, reversed_graph, scc, component, visit, stack
			if visit[u]:
						return
			A_       		=   True
			component.append(SCREAMING_SNAKE_CASE_    )
			for v in reversed_graph[u]:
						dfsa(SCREAMING_SNAKE_CASE_    )





def  lowerCamelCase(       )		->		int:
			global graph, reversed_graph, scc, component, visit, stack
			for i in range(SCREAMING_SNAKE_CASE_    ):
						dfs(SCREAMING_SNAKE_CASE_    )
			A_       		=   [False] * n
			for i in stack[::-1]:
						if visit[i]:
									continue
						A_       		=   []
						dfsa(SCREAMING_SNAKE_CASE_    )
						scc.append(SCREAMING_SNAKE_CASE_    )
			return scc


if __name__ == "__main__":
							# n - no of nodes, m - no of edges
							_SCREAMING_SNAKE_CASE ,						_SCREAMING_SNAKE_CASE =	list(map(int, input().strip().split()))

							_SCREAMING_SNAKE_CASE =	[[] for _ in range(n)]  # graph
							_SCREAMING_SNAKE_CASE =	[[] for i in range(n)]  # reversed graph
							# input graph data (edges)
							for _ in range(m):
														_SCREAMING_SNAKE_CASE ,						_SCREAMING_SNAKE_CASE =	list(map(int, input().strip().split()))
														graph[u].append(v)
														reversed_graph[v].append(u)

							_SCREAMING_SNAKE_CASE =	[]
							_SCREAMING_SNAKE_CASE =	[False] * n
							_SCREAMING_SNAKE_CASE =	[]
							_SCREAMING_SNAKE_CASE =	[]
							print(kosaraju())




