using System; namespace YukiCoderNo232 { class Program { static void Main() { string[] buffer = (Console.ReadLine()).Split(' '); int turn = int.Parse(buffer[0]); int posY = int.Parse(buffer[1]); int posX = int.Parse(buffer[2]); int posMax = Math.Max(posX, posY); if ((turn >= posMax) && (!((posMax == 0) && (turn == 1)))) { Console.WriteLine("YES"); int dummyStepTurnX = turn - posX; int dummyStepTurnY = turn - posY; int[] stepListX = new int[turn]; int[] stepListY = new int[turn]; for (int i = 0, dummyX = (dummyStepTurnX - (dummyStepTurnX % 2)); i < dummyX; i++) { stepListX[i] = ((i % 2) << 1) - 1; } for (int i = dummyStepTurnX; i < turn; i++) { stepListX[i] = 1; } for (int i = 0, dummyY = (dummyStepTurnY - (dummyStepTurnY % 2)); i < dummyY; i++) { stepListY[i] = ((i % 2) << 1) - 1; } for (int i = dummyStepTurnY; i < turn; i++) { stepListY[i] = 1; } if ((dummyStepTurnX % 2) != 0) { int stepBuffer = stepListX[0]; stepListX[0] = stepListX[dummyStepTurnX - 1]; stepListX[dummyStepTurnX - 1] = stepBuffer; } for (int i = 0; i < turn; i++) { if (stepListX[i] == 1) { Console.Write(">"); } else if (stepListX[i] == -1) { Console.Write("<"); } if (stepListY[i] == 1) { Console.Write("^"); } else if (stepListY[i] == -1) { Console.Write("v"); } Console.WriteLine(); } } else { Console.WriteLine("NO"); } } } }