#!/usr/bin/python from itertools import izip_longest H, J, K, L = list('<v^>') def solve(t, a, b): if (t, a, b) == (1, 0, 0): return None elif (t, a, b) == (1, 0, 1): return [L] elif (t, a, b) == (1, 1, 0): return [K] elif (t, a, b) == (1, 1, 1): return [K+L] elif (t, a, b) == (2, 0, 1): return [K+L, J] elif (t, a, b) == (2, 1, 0): return [K+L, H] elif (t, a, b) == (2, 0, 0): return [L, H] elif (t, a, b) == (2, 1, 1): return [L, K] dist = max(a, b) if t < dist: return None res = map(''.join, izip_longest(K*a, L*b, fillvalue='')) left = t - dist res += [H, L] * (left / 2) if not (left & 1): return res for i, e in enumerate(res): if len(e) < 2: continue res += e[0] + e[1] del res[i] break return res t, a, b = map(int, raw_input().split()) res = solve(t, a, b) if res: print 'YES' print '\n'.join(res) else: print 'NO'