from math import *
import sys
from functools import lru_cache
# sys.setrecursionlimit(100000)
n, m, k = map(int, input().split())
a = [input() for i in range(n)]
dr = [(0, 1), (1, 0)]
cnt = 0
@lru_cache(maxsize=None)
def dfs(x, y, v, depth):
"""
v: 方向
depth: 改变多少次
"""
cnt = 0
if depth > k:
return 0
if x >= n or y >= m:
return 0
if a[x][y] == '#':
return 0
if x == n - 1 and y == m - 1:
# cnt += 1
return 1
for i in range(2):
xx, yy = x + dr[i][0], y + dr[i][1]
cnt += dfs(xx, yy, i, depth + (i != v))
return cnt
if a[0][1] == '.':
cnt += dfs(0, 1, 0, 0)
if a[1][0] == '.':
cnt += dfs(1, 0, 1, 0)
print(cnt)
from collections import deque
A,B,C=map(int,input().split())
st=[[[False for _ in range(21)] for _ in range(21)] for _ in range(21)]class Node:
def __init__(self,a,b,c):
self.a=a
self.b=b
self.c=c
def bfs():
q=deque()
q.append(Node(0,0,C))
st[0][0][C]=True
W=[A,B,C]
while q:
t=q.popleft()
for i in range(3):
for j in range(3):
if i!=j:
w=[t.a,t.b,t.c]
r=min(w[i],W[j]-w[j])
w[i]-=r
w[j]+=r
if not st[w[0]][w[1]][w[2]]:
st[w[0]][w[1]][w[2]]=True
q.append(Node(w[0],w[1],w[2]))
bfs()
for c in range(C+1):
for b in range(B+1):
if st[0][b][c]:
print(c,end=" ")
break
class Node:
def __init__(self,t,d,l):
self.t=t
self.d=d
self.l=l
t=int(input())
for _ in range(t):
n=int(input())
ans=[]
for _ in range(n):
t,d,l=map(int,input().split())
ans.append(Node(t,d,l))
used=[0 for _ in range(n)]
def dfs(index,last):
if index==n:
return True
for i in range(n):t,d,l=ans[i].t,ans[i].d,ans[i].l
if not used[i] and t+d>=last:
used[i]=1
if (dfs(index+1,max(last,t)+l)):
return Trueused [i]=0
return False
if dfs(0,0):print("YES")
else:print("NO")