#include #include #include using namespace std; int matr[1001][1001]; char top[1001][1001]; char view1[10][1001]; char view2[10][1001]; int hh1[1001]; int hh2[1001]; vector > h1; vector > h2; int n, m, h; int getH(int h, char vi[][1001], int col) { int val=0; while(val=h2.size()) complete(); for(i=0; ihh1[i]) continue; if(top[h2[k].first][i]=='.') continue; matr[h2[k].first][i]=h2[k].second; backt2(k+1); matr[h2[k].first][i]=0; } } void backt1(int k) { int i; if(k>=h1.size()) backt2(0); for(i=0; ihh2[n-i-1]) continue; if(top[i][h1[k].first]=='.') continue; matr[i][h1[k].first]=h1[k].second; backt1(k+1); matr[i][h1[k].first]=0; } } int main() { //int n, m, h; int i; cin>>n>>m>>h; for(i=0;i>top[i]; for(i=0;i>view1[i]; for(i=0;i>view2[i]; for(i=0;i