/*
* @Author: hungeazy
* @Date: 2026-03-04 23:24:15
* @Last Modified by: hungeazy
* @Last Modified time: 2026-03-14 22:16:56
*/
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 501;
int n,m;
char s[N][N];
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) cin >> s[i][j];
int ans = 0;
for (int i = 1; i <= n-1; i++)
for (int j = 1; j <= m-1; j++)
{
vector<char> vec;
vec.push_back(s[i][j]); vec.push_back(s[i][j+1]);
vec.push_back(s[i+1][j]); vec.push_back(s[i+1][j+1]);
sort(vec.begin(),vec.end());
string st = "";
for (char x : vec) st += x;
if (st == "acef") ans++;
}
cout << ans;
return 0;
}
LyoKKiBAQXV0aG9yOiBodW5nZWF6eQoqIEBEYXRlOiAgIDIwMjYtMDMtMDQgMjM6MjQ6MTUKKiBATGFzdCBNb2RpZmllZCBieTogICBodW5nZWF6eQoqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjYtMDMtMTQgMjI6MTY6NTYKKi8KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZyAKY29uc3QgaW50IE4gPSA1MDE7CmludCBuLG07CmNoYXIgc1tOXVtOXTsKCnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAogICAgY2luLnRpZShOVUxMKTsgY291dC50aWUoTlVMTCk7CiAgICBjaW4gPj4gbiA+PiBtOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG07IGorKykgY2luID4+IHNbaV1bal07CiAgICBpbnQgYW5zID0gMDsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG4tMTsgaSsrKQogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG0tMTsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgdmVjdG9yPGNoYXI+IHZlYzsKICAgICAgICAgICAgdmVjLnB1c2hfYmFjayhzW2ldW2pdKTsgdmVjLnB1c2hfYmFjayhzW2ldW2orMV0pOwogICAgICAgICAgICB2ZWMucHVzaF9iYWNrKHNbaSsxXVtqXSk7IHZlYy5wdXNoX2JhY2soc1tpKzFdW2orMV0pOwogICAgICAgICAgICBzb3J0KHZlYy5iZWdpbigpLHZlYy5lbmQoKSk7CiAgICAgICAgICAgIHN0cmluZyBzdCA9ICIiOwogICAgICAgICAgICBmb3IgKGNoYXIgeCA6IHZlYykgc3QgKz0geDsKICAgICAgICAgICAgaWYgKHN0ID09ICJhY2VmIikgYW5zKys7CiAgICAgICAgfQogICAgY291dCA8PCBhbnM7CiAgICByZXR1cm4gMDsKfQ==