#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define int ll
using P = pair<int, int>;
#define all(x) x.begin(), x.end()
#define rep(i, l, n) for (int i = l; i < (n); ++i)
#define sz(x) (int)x.size()
const char nl = '\n';
const int mod = 998244353;
void solve() {
int n, m; cin >> n >> m;
vector<string> a(n);
for (auto &i: a)cin >> i;
vector<int> p(m);
rep(i, 1, n)
rep(j, 0, m)p[j] += (a[i][j] == 'I');
int res = 0;
rep(i, 0, n) {
int cntO = 0;
rep(j, 0, m)cntO += a[i][j] == 'O';
rep(j, 0, m) {
if (a[i][j] == 'O')cntO--;
if (a[i][j] == 'J')res += cntO*p[j];
}
if (i+1<n) {
rep(j, 0, m)
if (a[i+1][j] =='I')p[j]--;
}
}
cout << res << nl;
}
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
solve();
return 0;
}