import sys def input(): return sys.stdin.readline().strip() def list2d(a, b, c): return [[c for j in range(b)] for i in range(a)] def list3d(a, b, c, d): return [[[d for k in range(c)] for j in range(b)] for i in range(a)] def list4d(a, b, c, d, e): return [[[[e for l in range(d)] for k in range(c)] for j in range(b)] for i in range(a)] def ceil(x, y=1): return int(-(-x // y)) def INT(): return int(input()) def MAP(): return map(int, input().split()) def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)] def Yes(): print('Yes') def No(): print('No') def YES(): print('YES') def NO(): print('NO') sys.setrecursionlimit(10**9) INF = 10**18 MOD = 10**9 + 7 EPS = 10**-10 t, gh, gw = MAP() def check(h, w): return max(abs(h-gh), abs(w-gw)) ch = cw = 0 dist = check(ch, cw) if dist > t: NO() exit() ans = [] if gh == gw == 0: if t == 1: NO() exit() elif t % 2 == 1: ans.append('^>') ans.append('v') ans.append('<') t -= 3 else: while check(ch, cw) > 1: if abs(ch-gh) and abs(cw-gw): ans.append('^>') ch += 1 cw += 1 t -= 1 elif abs(ch-gh): ans.append('^') ch += 1 t -= 1 else: ans.append('>') cw += 1 t -= 1 if t % 2 == 1: if abs(ch-gh) and abs(cw-gw): ans.append('^>') ch += 1 cw += 1 t -= 1 elif abs(ch-gh): ans.append('^') ch += 1 t -= 1 else: ans.append('>') cw += 1 t -= 1 else: if abs(ch-gh) and abs(cw-gw): ans.append('^') ans.append('>') ch += 1 cw += 1 t -= 2 elif abs(ch-gh): ans.append('^>') ans.append('<') ch += 1 t -= 2 else: ans.append('^>') ans.append('v') cw += 1 t -= 2 while t: ans.append('<') ans.append('>') t -= 2 YES() for s in ans: print(s)