#include <bits/stdc++.h>
using namespace std;
long long int mod = 10e9 + 7;
long long int gcd(long long int a, long long int b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
long long int modularExp(long long int x, long long int n, long long int mod) {
  long long int result = 1;
  while (n > 0) {
    if (n % 2 == 1) result = (result * x) % mod;
    x = ((x % mod) * (x % mod)) % mod;
    n = n / 2;
  }
  return (result) % mod;
}
bool isPrime(long long int n) {
  for (long long int i = 2; i * i <= n; i++)
    if (n % i == 0) return false;
  return true;
}
int main() {
  long long int n, m;
  cin >> n >> m;
  char c;
  cin >> c;
  vector<vector<char> > v(n + 1, vector<char>(m + 1));
  long long int i, j;
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++) cin >> v[i][j];
  set<char> st;
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= m; j++) {
      if (v[i][j] == c) {
        if (i + 1 <= n && v[i + 1][j] != c && v[i + 1][j] != '.')
          st.insert(v[i + 1][j]);
        if (j + 1 <= m && v[i][j + 1] != c && v[i][j + 1] != '.')
          st.insert(v[i][j + 1]);
        if (i - 1 >= 1 && v[i - 1][j] != c && v[i - 1][j] != '.')
          st.insert(v[i - 1][j]);
        if (j - 1 >= 1 && v[i][j - 1] != c && v[i][j - 1] != '.')
          st.insert(v[i][j - 1]);
      }
    }
  }
  cout << st.size();
}
