1066 - 勇者ビ太郎 (Bitaro the Brave)

時間制限 1 秒 / メモリ制限 256 MB / 得点 100 / Writer syoribu / x 8 / 統計 /


TLE
1sec
MLE
256MB
得点
100

問題


勇者のビ太郎は,魔王と対峙することなった.
ビ太郎は,縦 $H$ 行,横 $W$ 列のマス目上に宝石(Jewel),オーブ(Orb),金塊(Ingot)を配置し,魔法を発動することによって魔王に攻撃をしようとしている.以下,マス目のうち上から $i$ 行目($1$ ≦ $i$ ≦ $H$),左から $j$ 列目($1$ ≦ $j$ ≦ $W$)のマスを,マス($i$, $j$)と表す.
ビ太郎は今,それぞれのマスにこれら $3$ 種類のうち $1$ 個を配置した.今から魔法を発動しようとしているが,この魔法の威力はマス目上の宝石,オーブ,金塊の配置によって決まる.具体的には,次の条件を満たす整数($i$, $j$, $k$, $l$)($1$ ≦ $i$ < $k$ ≦ $H$, $1$ ≦ $j$ < $l$ ≦ $W$)の組の個数が,魔法の威力である.

条件:マス($i$, $j$)には宝石が,マス($i$, $l$)にはオーブが,マス($k$, $j$)には金塊が置かれている.
ビ太郎は,この魔法の威力が気になっている.
マス目上の宝石,オーブ,金塊の配置が与えられたとき,ビ太郎が発動する魔法の威力を求めるプログラムを作成せよ.

入力

入力は以下の形式で標準入力から与えられる.

$H$ $W$
$S$$1$
:
$S$$H$

$S$$i$($1$ ≦ $i$ ≦ $H$)は長さ $W$ の文字列で,その $j$ 文字目($1$ ≦ $j$ ≦ $W$)が J のときはマス($i$, $j$)に宝石が,O のときはマス($i$, $j$)にオーブが,I のときはマス($i$, $j$)に金塊が置かれていることを表す.

出力

標準出力に,魔法の威力を表す整数を $1$ 行で出力せよ.

制約

  • $2$ ≦ $H$ ≦ $3000$.
  • $2$ ≦ $W$ ≦ $3000$.
  • $S$$i$ は長さ $W$ の文字列である($1$ ≦ $i$ ≦ $H$).
  • $S$$i$の各文字は J, O, I のいずれかである($1$ ≦ $i$ ≦ $H$).

小課題

  1. (20 点) $H$ ≦ $100$, $W$ ≦ $100$.
  2. (30 点) $H$ ≦ $500$, $W$ ≦ $500$.
  3. (50 点) 追加の制約はない.

入出力例

入力例 1

3 4
JOIJ
JIOO
IIII

出力例 1

3

この入力例では,($i$, $j$, $k$, $l$) = ($1$, $1$, $3$, $2$), ($2$, $1$, $3$, $3$), ($2$, $1$, $3$, $4$)の $3$ 組が条件を満たすので,答えは $3$ である.


入力例 2

4 4
JJOO
JJOO
IIJO
IIIJ

出力例 2

17