var p,q,t:array[0..64,0..64,0..64] of longint; que:array[0..1,0..1000000] of longint; qs:array[0..1] of longint; qn:longint; v,r,s:longint; i,j,k:longint; cena:longint; c:char; mp:longint; ts:string[255]; function rn(x,y,z:longint):longint; begin rn:=z*64*64+y*64+x; end; function inr(x,y,z:longint):boolean; begin inr:=(x>0) and (y>0) and (x<=r) and (y<=s) and (z>0) and (z<=v); end; function bb(x:longint):string; var ts,ts2:string; ti,i:longint; begin ts:=''; while x>0 do begin ts2:=chr((x div 100) mod 10+48)+char((x div 10) mod 10+48)+char(x mod 10+48); if ts='' then ts:=ts2 else ts:=ts2+','+ts; x:=x div 1000; end; i:=1; while (ts[i]='0') do inc(i); ts2:=''; for j:=i to length(ts) do ts2:=ts2+ts[j]; bb:=ts2; end; procedure addq(q,x,y,z:longint); begin inc(qs[q]); que[q,qs[q]]:=rn(x,y,z); end; procedure nr(var a,x,y,z:longint); begin x:=a mod 64; y:=(a div 64) mod 64; z:=a div (64*64); end; procedure fill; var i,j,k,x,y,z:longint; begin { q[x,y,z]:=1; if (p[x,y,z] and 1=1) and inr(x+1,y,z) then fill(x+1,y,z); if (p[x,y,z] and 2=2) and inr(x,y+1,z) then fill(x,y+1,z); if (t[x,y,z]=1) then fill(x,y,z+1);} while qs[qn]<>0 do begin qs[1-qn]:=0; for i:=1 to qs[qn] do begin nr(que[qn,i],x,y,z); q[x,y,z]:=1; if (p[x,y,z] and 1=1) and inr(x+1,y,z) and (q[x+1,y,z]=0) then addq(1-qn,x+1,y,z); if (p[x,y,z] and 2=2) and inr(x,y+1,z) and (q[x,y+1,z]=0) then addq(1-qn,x,y+1,z); if (t[x,y,z]=1) and (q[x,y,z+1]=0) then addq(1-qn,x,y,z+1); end; qn:=1-qn; end; end; begin readln(v,r,s); while (v<>0) and (r<>0) and (s<>0) do begin cena:=0; for i:=1 to v do begin for j:=1 to r do for k:=1 to s do begin p[i,j,k]:=0; q[i,j,k]:=0; t[i,j,k]:=0; end; for j:=1 to r do begin readln(ts); for k:=1 to s-1 do begin { read(c); read(c);} { write(c);} c:=ts[2*k]; if c<>'.' then p[i,j,k]:=1; end; { writeln;} if j<>r then begin readln(ts); for k:=1 to s do begin { read(c);} { write(c);} c:=ts[2*k-1]; if c<>'.' then p[i,j,k]:=p[i,j,k] or 2; { if k<>s then read(c);} end; end; { readln(ts); } { writeln;} end; readln(ts); mp:=0; if i<>v then begin for j:=1 to r do begin readln(ts); for k:=1 to s do begin { read(c);} { write(c);} c:=ts[2*k-1]; if c<>'.' then begin t[i,j,k]:=1; mp:=1; end; { if k<>s then begin read(c); end; } end; { readln(ts);} readln(ts); { writeln;} end; end else mp:=1; if mp=0 then begin cena:=cena+2000; { writeln(i);} end; end; qn:=0; qs[0]:=1; qs[1]:=0; que[0,1]:=rn(1,1,1); fill; for i:=1 to v do begin for j:=1 to r-1 do begin for k:=1 to s-1 do if q[i,j,k]=0 then begin cena:=cena+1000; qn:=0; qs[0]:=1; qs[1]:=0; que[0,1]:=rn(i,j,k); fill; end; end; end; if cena<>0 then writeln('Ocekavana cena: ',bb(cena),' Kc') else writeln('Budova je jiz dostatecne propojena.'); readln(v,r,s); end; end.