chg :: [Int] -> (Int,Int) -> [Int] chg (a:b:c:[]) (1,2) = b : a : c : [] chg (a:b:c:[]) (2,1) = b : a : c : [] chg (a:b:c:[]) (2,3) = a : c : b : [] chg (a:b:c:[]) (3,2) = a : c : b : [] chg (a:b:c:[]) (1,3) = c : b : a : [] chg (a:b:c:[]) (3,1) = c : b : a : [] chg _ _ = [] main = do n <- getLine >>= return . read getLine c <- getContents >>= return . map ((\(a:b:[]) -> (read a,read b)) . words) . lines let r = (foldl chg [1,2,3] c) print $ head $ [ i+1 | i<-[0,1,2], r!!i == n ]