#include <bits/stdc++.h>
#define int long long
#define ff first
#define ss second
using namespace std;
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(NULL);
int n, m;
cin >> n >> m;
char s[n + 1][m + 1];
vector <vector <int>> js, is, os;
js.assign(n + 1, vector <int>(m + 1, 0));
is.assign(n + 1, vector <int>(m + 1, 0));
os.assign(n + 1, vector <int>(m + 1, 0));
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> s[i][j];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1;j <= m;j++) {
js[i][j] = js[i][j - 1] + js[i - 1][j] - js[i - 1][j - 1] + (s[i][j] == 'J');
is[i][j] = is[i][j - 1] + is[i - 1][j] - is[i - 1][j - 1] + (s[i][j] == 'I');
os[i][j] = os[i][j - 1] + os[i - 1][j] - os[i - 1][j - 1] + (s[i][j] == 'O');
}
}
int ans = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (s[i][j] != 'J') continue;
ans += (os[i][m] - os[i - 1][m] - os[i][j] + os[i - 1][j]) * (is[n][j] - is[n][j - 1] - is[i][j] + is[i][j - 1]);
}
}
cout << ans << endl;
}