package main import ( "bufio" "fmt" "os" "strconv" ) var sc = bufio.NewScanner(os.Stdin) var rdr = bufio.NewReaderSize(os.Stdin, 1000000) func main() { sc.Split(bufio.ScanWords) t, a, b := nextInt(), nextInt(), nextInt() c := a if b > a { c = b } if c > t { fmt.Println("NO") return } if t == 1 && a == 0 && b == 0 { fmt.Println("NO") return } fmt.Println("YES") around := t - c if a == 0 && b == 0 && around%2 == 1 { fmt.Println("") return } for i := 0; i < around/2; i++ { fmt.Println("v") fmt.Println("^") } m := a if b < a { m = b } if around%2 == 1 && m != 0 { m-- fmt.Println(">") fmt.Println("^") } for i := 0; i < m; i++ { fmt.Println(">^") } if around%2 == 1 && m != -1 { m++ } if m == 0 && around%2 == 1 { if a > 0 { fmt.Println("<") fmt.Println(">^") a-- } else { fmt.Println("v") fmt.Println(">^") b-- } } for i := 0; i < a-m; i++ { fmt.Println("^") } for i := 0; i < b-m; i++ { fmt.Println(">") } return } func nextLine() string { sc.Scan() return sc.Text() } func nextInt() int { i, _ := strconv.Atoi(nextLine()) return i }