import Data.List import Control.Applicative import Control.Monad main = do [t, a, b] <- map read . words <$> getLine if a > t || b > t then putStrLn "NO" else do putStrLn "YES" mapM_ putStrLn $ move t 0 0 a b move 1 x y a b = [arrowL (a - x) (b - y)] move t x y a b = case arrow (a - x) (b - y) of "^" -> arrow (a - x) (b - y) : move (t - 1) x (y + 1) a b "^>" -> arrow (a - x) (b - y) : move (t - 1) (x + 1) (y + 1) a b ">" -> arrow (a - x) (b - y) : move (t - 1) (x + 1) y a b ">v" -> arrow (a - x) (b - y) : move (t - 1) (x + 1) (y - 1) a b "v" -> arrow (a - x) (b - y) : move (t - 1) x (y - 1) a b " arrow (a - x) (b - y) : move (t - 1) (x - 1) (y - 1) a b "<" -> arrow (a - x) (b - y) : move (t - 1) (x - 1) y a b "<^" -> arrow (a - x) (b - y) : move (t - 1) (x - 1) (y + 1) a b arrow 1 1 = "^" arrow 1 0 = "v" arrow 1 (-1) = ">" arrow 0 (-1) = "<" arrow (-1) (-1) = "v" arrow (-1) 0 = "^" arrow (-1) 1 = "<" arrow 0 1 = ">" arrow x y | x > 1 && y > 1 = "^>" | x > 1 = ">" | y > 1 = "^" arrowL 1 1 = "^>" arrowL 1 0 = ">" arrowL 1 (-1) = ">v" arrowL 0 (-1) = "v" arrowL (-1) (-1) = "