#include <bits/stdc++.h>
using namespace std;
string to_string(char s) { return string(1, s); }
string to_string(string s) { return "\"" + s + "\""; }
template <typename T>
string to_string(vector<T>);
template <typename U, typename V>
string to_string(pair<U, V> p) {
  return "(" + to_string(p.first) + ", " + to_string(p.second) + ")";
}
template <typename T>
string to_string(vector<T> v) {
  string res = "[";
  for (int i = 0; i < (int)v.size() - 1; i++) res += to_string(v[i]) + ", ";
  if (!v.empty()) res += to_string(v.back());
  res += "]";
  return res;
}
int k, m, n;
char s[12];
int dx, dy;
int counter;
char plate[12][12][12];
int dirx[] = {0, -1, 0, 1, 0, 0};
int diry[] = {-1, 0, 1, 0, 0, 0};
int dirz[] = {0, 0, 0, 0, 1, -1};
bool isvalid(int x, int y, int z) {
  if (x < k && y < n && z < m && x >= 0 && y >= 0 && z >= 0 &&
      plate[x][y][z] == '.')
    return true;
  else
    return false;
}
void dfs(int x, int y, int z) {
  counter++;
  plate[x][y][z] = '#';
  for (int i = 0; i < 6; i++) {
    int u = x + dirx[i];
    int v = y + diry[i];
    int w = z + dirz[i];
    if (isvalid(u, v, w)) dfs(u, v, w);
  }
}
int main() {
  scanf("%d %d %d\n", &k, &n, &m);
  for (int i = 0; i < k; i++) {
    for (int j = 0; j < n; j++) scanf("%s", &plate[i][j]);
  }
  for (int i = 0; i < k; i++) {
    for (int j = 0; j < n; j++) {
      for (int t = 0; t < m; t++)
        ;
      ;
    };
  }
  scanf("%d %d", &dx, &dy);
  dfs(0, dx - 1, dy - 1);
  printf("%d\n", counter);
}
