import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Scanner; import java.util.Set; import java.util.TreeSet; public class Main { public static final int EXP = 3000000; public static void main(String[] args) { Scanner sc = new Scanner(System.in); final int T = sc.nextInt(); final int A = sc.nextInt(); final int B = sc.nextInt(); final int minimum_cost = Math.max(A, B); final int use_cost = T - minimum_cost; final int min_range = Math.min(A, B); if(T < minimum_cost){ System.out.println("NO"); return; }else if(A == 0 && B == 0 && use_cost < 3 && (T % 2) != (minimum_cost % 2)){ System.out.println("NO"); return; }else if(use_cost == 0 && (T % 2) != (minimum_cost % 2)){ System.out.println("NO"); return; } System.out.println("YES"); int limit = min_range, cnt = 0; if((minimum_cost % 2) != (T % 2)){ if(A == 0 && B == 0){ System.out.println(">^"); System.out.println("v"); System.out.println("<"); cnt += 3; }else if(A == 0 || B == 0){ System.out.println(">^"); limit--; cnt++; }else{ System.out.println(">"); System.out.println("^"); limit--; cnt += 2; } } for(int i = 0; i < limit; i++){ System.out.println(">^"); cnt++; } for(int x = min_range + (limit < 0 ? -limit : 0); x < B; x++){ System.out.println(">"); cnt++; } for(int y = min_range + (limit < 0 ? -limit : 0); y < A; y++){ System.out.println("^"); cnt++; } if(limit < 0){ if(A == 0){ System.out.println("v"); }else if(B == 0){ System.out.println("<"); }else{ System.out.println("