from __future__ import annotations import sys sys.setrecursionlimit(2*10**7) #↓codon=============================== import string Alp_low=list(string.ascii_lowercase) Alp_up=list(string.ascii_uppercase) Digit="0123456789" dij=[[0,1],[1,0],[0,-1],[-1,0]] def nin(): return list(map(int,input().split())) def deq(x): return [i-1 for i in x] mod=998244353 _factorial=[1] def factorial(n): while len(_factorial)<=n: _factorial.append((_factorial[-1]*len(_factorial))%mod) return _factorial[n] _inv_factorial=[1] def inv_factorial(n): while len(_inv_factorial)<=n: _inv_factorial.append((_inv_factorial[-1]*pow(len(_inv_factorial),mod-2,mod))%mod) return _inv_factorial[n] def binom(n,r): if r>=mod: raise ValueError("r is too big") if n<0: return 0 if r>n: return 0 if r<0: return 0 ans=((factorial(n)*inv_factorial(r))%mod*inv_factorial(n-r))%mod return ans def main(): h,w,k=nin() if k==0: for _ in range(h): print("#"*w) return def calc1(h,w,k): if not 2<=k<=h+w-2: return False,[[]] if k<=w: ans=[[] for _ in range(h)] for i in range(h): if i==0: for j in range(k-1): ans[i].append(".") for j in range(w-(k-1)): ans[i].append("#") continue for j in range(w): ans[i].append("#") return True,ans else: ans=[[] for _ in range(h)] for i in range(h): if i==0: for j in range(w): ans[i].append(".") continue for j in range(w): if j==0 and i<=k-w+1: ans[i].append(".") else: ans[i].append("#") return True,ans def calc2(h,w,k): if k=0: ans[i][j]="." rem-=x if rem!=0: return False,[[]] else: return True,ans def calc3(h,w,k): fl,ans=calc2(w,h,k) if fl==False: return fl,ans new=[[ans[j][i] for j in range(w)] for i in range(h)] return fl,new fl,ans=calc1(h,w,k) if fl: for i in ans: print("".join(i)) return fl,ans=calc3(h,w,k) if fl: for i in ans: print("".join(i)) return fl,ans=calc2(h,w,k) if fl: for i in ans: print("".join(i)) return print(-1) if __name__=="__main__": main()