def vynuluj(grid, x, y):
	if grid[x][y] == -1:
		return False
	for (a,b) in grid[x][y]:
		grid[a][b] = -1
	grid[x][y] = -1
	return grid


def add_dock(grid, w, h, x, y, k, d):
	if d == "L":
		if grid[x][y] == -1:
			grid = vynuluj(grid, x, y-(k-1))
			if grid is False:
				return False
		if grid[x][y-(k-1)] == -1:
			grid = vynuluj(grid, x, y)
			if grid is False:
				return False
		elif grid[x][y] != -1:
			if (x,y) in grid[x][y-(k-1)]:
				grid = vynuluj(grid, x, y)
				if grid is False:
					return False
			else:
				grid[x][y].append([x, y-(k-1)]) 
				grid[x][y-(k-1)].append([x,y])
		for i in range(1,k-1):
			grid = vynuluj(grid, x, y-i)
			if grid is False:
				return False
			
	elif d == "U":
		if grid[x][y] == -1:
			grid = vynuluj(grid, x-(k-1, y))
			if grid is False:
				return False
		elif grid[x-(k-1)][y] == -1:
			grid = vynuluj(grid, x, y)
			if grid is False:
				return False
		if grid[x][y] != -1:
			if (x,y) in grid[x-(k-1)][y]:
				grid = vynuluj(grid, x, y)
				if grid is False:
					return False
			else:
				grid[x][y].append([x-(k-1), y]) 
				grid[x-(k-1)][y].append([x,y])
		for i in range(1,k-1):
			grid = vynuluj(grid, x-i, y)
			if grid is False:
				return False
	elif d == "R":
		if grid[x][y] == -1:
			grid = vynuluj(grid, x, y+(k-1))
			if grid is False:
				return False
		elif grid[x][y+(k-1)] == -1:
			grid = vynuluj(grid, x, y)
			if grid is False:
				print("error")
				return False
		if grid[x][y] != -1:
			if (x,y) in grid[x][y+(k-1)]:
				grid = vynuluj(grid, x, y)
				if grid is False:
					print("error")
					return False
			else:
				grid[x][y].append([x, y+(k-1)]) 
				grid[x][y+(k-1)].append([x,y])
		for i in range(1,k-1):
			grid = vynuluj(grid, x, y+i)
			if grid is False:
				return False
	elif d == "D":
		if grid[x][y] == -1:
			grid = vynuluj(grid, x+(k-1, y))
			if grid is False:
				return False
		elif grid[x+(k-1)][y] == -1:
			grid = vynuluj(grid, x, y)
			if grid is False:
				return False
		if grid[x][y] != -1:
			if (x,y) in grid[x+(k-1)][y]:
				grid = vynuluj(grid, x, y)
				if grid is False:
					return False
			else:
				grid[x][y].append([x+(k-1), y]) 
				grid[x+(k-1)][y].append([x,y])
		for i in range(1,k-1):
			grid = vynuluj(grid, x+i, y)
			if grid is False:
				return False
	
	return grid

def create_grid(w,h):
	grid = []
	for i in range(h):
		row = []
		for j in range(w):
			row.append([])
		grid.append(row)
	return grid


h, w, n = [int(x) for x in input().split()]

grid = create_grid(w,h)
for i in range(n):
	x, y, k, d = input().split()
	x = int(x)-1
	y = int(y)-1
	k = int(k)
	grid = add_dock(grid, w, h, x, y, k, d)
	#print(grid)
	if grid is False:
		print("No")
		for j in range(n-i):
			x, y, k, d = input().split()
		break
else:
	print("Yes")
		
