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 nowPosX = 0; int nowPosY = 0; int posMax = Math.Max(posX, posY); int stepCount = 0; if ((turn >= posMax) && (!((posX == 0) && (posY == 0) && ((turn % 2) != 0)))) { Console.WriteLine("YES"); int step = turn - posMax; int dummyStepCount = (step / 2); for (int i = 0; i < dummyStepCount; i++) { Console.WriteLine(">"); Console.WriteLine("<"); stepCount += 2; } int posMin = Math.Min(posX, posY); int posDiff = Math.Abs(posY - posX); if ((step % 2) == 0) { for (int i = 0; i < posMin; i++) { Console.WriteLine("^>"); nowPosX++; nowPosY++; stepCount++; } } else { Console.WriteLine("^"); Console.WriteLine(">"); nowPosX++; nowPosY++; stepCount += 2; for (int i = 1; i < posMin; i++) { Console.WriteLine("^>"); nowPosX++; nowPosY++; stepCount++; } } if (posX > posY) { for (int i = 0; i < posDiff; i++) { Console.WriteLine(">"); nowPosX++; stepCount++; } } else if (posX < posY) { for (int i = 0; i < posDiff; i++) { Console.WriteLine("^"); nowPosY++; stepCount++; } } } else { Console.WriteLine("NO"); } } } }