你是一位制作日式甜点“团子”的专业糕点师。现在,你准备将团子串起来。
团子被放置在一个 $N$ 行 $M$ 列的网格中。每个单元格包含一个团子。每个团子的颜色为红色 (R)、绿色 (G) 或白色 (W)。
你需要从网格中选择三个连续的团子,并将它们串成一串。这三个连续团子的方向必须是从左到右,或者从上到下。
现在,你想制作颜色顺序为红、绿、白的团子串。你希望尽可能多地制作团子串。串在签子上的团子顺序必须与从网格中选择的团子顺序相同。不允许将一个团子串在多于一根签子上。
你能制作多少串团子?
题目描述
给定放置在单元格中的团子颜色,编写一个程序,计算你能制作的团子串的最大数量。团子的颜色必须按红、绿、白的顺序排列。
输入格式
从标准输入读取以下数据。
- 第一行包含两个空格分隔的整数 $N$ 和 $M$。
- 接下来的 $N$ 行中,第 $i$ 行 ($1 \le i \le N$) 包含一个长度为 $M$ 的字符串,由 R、G 或 W 组成。该字符串的第 $j$ 个字符 ($1 \le j \le M$) 表示从上往下第 $i$ 行、从左往右第 $j$ 列的团子颜色。
输出格式
向标准输出打印一行。输出应包含团子串的最大数量。
数据范围
所有输入数据满足以下条件:
- $1 \le N \le 3\,000$
- $1 \le M \le 3\,000$
子任务
子任务 1 [13 分]
满足以下条件: $N \le 4$ $M \le 4$
子任务 2 [20 分]
满足以下条件: $N \le 10$ $M \le 10$
子任务 3 [67 分]
- 无附加限制。
样例
样例输入 1
3 4 RGWR GRGG RGWW
样例输出 1
3
说明 1
通过以下方式,你可以制作 3 串团子: 选择从上往下第 1 行、从左往右第 1 列开始的三个连续团子,方向为从左到右。然后按此顺序将它们串成一串。 选择从上往下第 1 行、从左往右第 4 列开始的三个连续团子,方向为从上到下。然后按此顺序将它们串成一串。 * 选择从上往下第 3 行、从左往右第 1 列开始的三个连续团子,方向为从左到右。然后按此顺序将它们串成一串。
样例输入 2
4 4 RGWR GRRG WGGW WWWR
样例输出 2
4
说明 2
通过以下方式,你可以制作 4 串团子: 选择从上往下第 1 行、从左往右第 1 列开始的三个连续团子,方向为从左到右。然后按此顺序将它们串成一串。 选择从上往下第 1 行、从左往右第 4 列开始的三个连续团子,方向为从上到下。然后按此顺序将它们串成一串。 选择从上往下第 2 行、从左往右第 2 列开始的三个连续团子,方向为从上到下。然后按此顺序将它们串成一串。 选择从上往下第 2 行、从左往右第 3 列开始的三个连续团子,方向为从上到下。然后按此顺序将它们串成一串。
样例输入 3
5 5 RGRGW GRRGW WGGWR RWRGW RGWGW
样例输出 3
6