#include <bits/stdc++.h>
using namespace std;
long long k, n, m;
vector<vector<vector<char>>> arr;
map<pair<pair<long long, long long>, long long>, bool> vis;
long long ans = 1;
bool valid(long long z, long long i, long long j, long long k, long long n,
           long long m) {
  return z >= 0 && z < k && i >= 0 && i < n && j >= 0 && j < m &&
         !vis[{{z, i}, j}] && arr[z][i][j] != '#';
}
void dfs(long long z, long long i, long long j) {
  if (valid(z + 1, i, j, k, n, m)) {
    ans++;
    vis[{{z + 1, i}, j}] = 1;
    dfs(z + 1, i, j);
  }
  if (valid(z - 1, i, j, k, n, m)) {
    ans++;
    vis[{{z - 1, i}, j}] = 1;
    dfs(z - 1, i, j);
  }
  if (valid(z, i - 1, j, k, n, m)) {
    ans++;
    vis[{{z, i - 1}, j}] = 1;
    dfs(z, i - 1, j);
  }
  if (valid(z, i + 1, j, k, n, m)) {
    ans++;
    vis[{{z, i + 1}, j}] = 1;
    dfs(z, i + 1, j);
  }
  if (valid(z, i, j + 1, k, n, m)) {
    ans++;
    vis[{{z, i}, j + 1}] = 1;
    dfs(z, i, j + 1);
  }
  if (valid(z, i, j - 1, k, n, m)) {
    ans++;
    vis[{{z, i}, j - 1}] = 1;
    dfs(z, i, j - 1);
  }
}
int main() {
  cin >> k >> n >> m;
  for (long long z = 0; z < k; z++) {
    vector<vector<char>> temp1;
    for (long long i = 0; i < n; i++) {
      vector<char> temp2;
      for (long long j = 0; j < m; j++) {
        char c;
        cin >> c;
        temp2.push_back(c);
      }
      temp1.push_back(temp2);
    }
    arr.push_back(temp1);
  }
  long long i, j;
  cin >> i >> j;
  i--;
  j--;
  vis[{{0, i}, j}] = 1;
  dfs(0, i, j);
  cout << ans << '\n';
  return 0;
}
