import Data.Array.ST import Control.Monad.ST import Data.List import Data.Maybe solve :: Int -> [(Int,Int)] -> Int solve n xs = runST $ do a <- newListArray (1,3) [0,0,0] :: ST s (STArray s Int Int) writeArray a n 1 go a xs succ . fromJust . elemIndex 1 <$> getElems a where go a [] = return () go a ((i,j):xs) = do x <- readArray a i y <- readArray a j writeArray a i y writeArray a j x main :: IO () main = do n <- readLn :: IO Int m <- readLn :: IO Int pq <- map ((\[a,b] -> (a,b)) . (map read . words)) . lines <$> getContents :: IO [(Int,Int)] print $ solve n pq