T, A, B = map(int, raw_input().split()) short = min(A, B) if T < A or T < B: route = None elif (A, B) == (0, 0): if T == 1: route = None elif T%2 == 0: route = ['^'] * (T/2) + ['v'] * (T/2) else: route = ['^', '>', 'v<'] route.extend(['^'] * ((T-3)/2)) route.extend(['v'] * ((T-3)/2)) else: if short <= T: route = ['^>'] * short if A < B: route.extend(['^'] * (B-A)) elif A > B: route.extend(['>'] * (A-B)) restT = T - max(A, B) if restT == 1: del route[0] route.extend(['^', '>']) elif restT%2 == 0: route.extend(['^'] * (restT/2)) route.extend(['v'] * (restT/2)) else: route.extend(['^', '>', 'v<']) route.extend(['^'] * ((T-3)/2)) route.extend(['v'] * ((T-3)/2)) else: route = None if route: print 'YES' for item in route: print item else: print 'NO'