#include #include using namespace std; int n,m,k,li,ci; double nrt,nrf; char x[25][25]; int y[25][25],i1,i2,j1,j2,a[25][25]; pairz[25][25]; int dl[4]={0,0,1,-1}; int dc[4]={1,-1,0,0}; void ve(int l,int c,int trans) { int p=0; if(trans==0&&y[l][c]==1) { l=z[l][c].first; c=z[l][c].second; trans=1; } if(x[l][c]=='%') { nrf++; nrt++; return; } if(x[l][c]=='*') { nrt++; return; } for(int j=0;j<4;j++) { if(l+dl[j]<=n&&l+dl[j]>=1&&c+dc[j]<=m&&c+dc[j]>=1&&x[l+dl[j]][c+dc[j]]!='#'&&a[l+dl[j]][c+dc[j]]==0) { a[l+dl[j]][c+dc[j]]=1; if(y[l+dl[j]][c+dc[j]]==1) { int la=l+dl[j]; int ca=c+dc[j]; a[z[la][ca].first][z[la][ca].second]=1; } ve(l+dl[j],c+dc[j],trans); p=1; a[l+dl[j]][c+dc[j]]=0; if(y[l+dl[j]][c+dc[j]]==1) { int la=l+dl[j]; int ca=c+dc[j]; a[z[la][ca].first][z[la][ca].second]=0; } } } if(p==0) { nrt++; return; } } int main() { cin>>n>>m>>k; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { cin>>x[i][j]; if(x[i][j]=='A') { li=i; ci=j; } } a[li][ci]=1; for(int i=1;i<=k;i++) { cin>>i1>>j1>>i2>>j2; y[i1][j1]=1; y[i2][j2]=1; z[i1][j1].first=i2; z[i1][j1].second=j2; z[i2][j2].first=i1; z[i2][j2].second=j1; } ve(li,ci,0); cout<