#include<bits/stdc++.h>
using namespace std;
#define int long long
//#define endl '\n'
#define all(v) v.begin(),v.end()
bool testcases=0;
void solve(){
int n,m;
cin>>n>>m;
char v[n+1][m+1];
int co[n+1][m+1];
memset(co,0,sizeof(co));
int ci[n+1][m+1];
memset(ci,0,sizeof(ci));
for(int i=1;i<=n;i++){
int cnto=0;
for(int j=1;j<=m;j++){
cin>>v[i][j];
}
}
int ans=0;
for(int i=1;i<=n;i++){
int cnt=0;
for(int j=m;j>0;j--){
co[i][j]=cnt;
if(v[i][j]=='O')cnt++;
}
}
for(int j=1;j<=m;j++){
int cnt=0;
for(int i=n;i>0;i--){
ci[i][j]=cnt;
if(v[i][j]=='I')cnt++;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
ans+=(v[i][j]=='J')*ci[i][j]*co[i][j];
}
}
cout<<ans<<endl;
}
signed main() {
iostream::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t=1;
if (testcases)cin>>t;
for(int i=1;i<=t;i++){
solve();
}
}