#include <bits/stdc++.h>
using namespace std;
template <class T>
ostream& operator<<(ostream& a, const vector<T>& v) {
  a << "{";
  if (v.size() > 0) a << v[0];
  for (int i = 1; i < v.size(); i++) a << ", " << v[i];
  a << "}";
  return a;
}
int main() {
  cin.sync_with_stdio(false);
  cout.sync_with_stdio(false);
  cin.tie(NULL);
  int N, M;
  while (cin >> N >> M) {
    vector<string> picture(N);
    for (int i = 0; i < (N); i++) cin >> picture[i];
    string subpic;
    int ans = 0;
    for (int i = 0; i < (N - 1); i++) {
      for (int j = 0; j < (M - 1); j++) {
        subpic.clear();
        for (int a = 0; a < (2); a++)
          for (int b = 0; b < (2); b++) {
            subpic.push_back(picture[i + a][j + b]);
          }
        sort(subpic.begin(), subpic.end());
        if (subpic == "acef") ans++;
      }
    }
    cout << ans << '\n';
  }
}
