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