import java.io.*;


public class Kpd
{
	public static int day=0;
	public static int hour=0;
	public static int directNum =0;
	public static int[] intDirect = new int[80];	
	public static Room[][] building = new Room[12][12];
	public static String directions="";
	
	public static void readTextFile(String fileName)
	{
		try
		{
			BufferedReader inStream = new BufferedReader(new FileReader(fileName));
			String line = inStream.readLine();
			int j=0;
			while(line.charAt(0)=='#' && line != null)
			{
				for(int i=0; i<line.length();i++)
				{
					if(line.charAt(i)=='#')
						building[i][j].blocked=true;
					else if(line.charAt(i)=='.')
					{
						building[i][j].blocked=false;						
						building[i][j].alwaysFree=true;
					}
					else if(line.charAt(i)=='K')
					{
						building[i][j].blocked=false;						
						building[i][j].hasKnight=true;
					}
					else if(line.charAt(i)=='P')
					{
						building[i][j].blocked=false;						
						building[i][j].hasPrincess=true;
					}
					else
					{
						building[i][j].blocked=false;												
						building[i][j].numDragons=Integer.parseInt(new Character(line.charAt(i)).toString());
					}
				}
				line = inStream.readLine();
				j++;
			}
			directions=line;
		}
		catch(IOException e)
		{
		}
		
	}
	
	public static void parseDirections(String direct)
	{
		directNum=0;
		for(int i=0; i<direct.length();i++)
		{
			if(direct.charAt(i) == '^')
				intDirect[i]=1;
			else if(direct.charAt(i) == '>')
				intDirect[i]=2;
			else if(direct.charAt(i) == 'v')
				intDirect[i]=3;
			else if(direct.charAt(i) == '<')
				intDirect[i]=4;
			else if(direct.charAt(i) == '.')
				intDirect[i]=5;
			else
			{
				System.out.println("Error: not valid Direction");
			}
		}
	}	
	public static int nextCommand()
	{
		return(intDirect[directNum++]);
	}
	public static int curCommand()
	{
		return(intDirect[directNum]);
	}
					
	public static void main(String[] args)
	{
		for(int i=0; i<building.length;i++)
			for(int j=0; j<building[0].length; j++)
			building[i][j] = new Room();
		readTextFile("prog1.dat");
		for(int i=0; i<building.length; i++)
		{
			for(int j=0; j<building[0].length;j++)
				System.out.print(building[j][i].getState());
			System.out.println();
		}
		System.out.println(directions);
		parseDirections(directions);

	}
}

class Room
{
	public boolean hasKnight=false;
	public boolean hasPrincess=false;
	public boolean blocked=true;
	public boolean knightHas=false;
	public boolean alwaysFree=false;
	public int numDragons=0;
	public char getState()
	{
		if(hasKnight)
			return('K');
		else if(hasPrincess)
			return('P');
		else if(blocked)
			return('#');
		else if(alwaysFree)
			return('.');
		else
		{
			return((Integer.toString(numDragons)).charAt(0));
		}	
	}
}



