P3965 [TJOI2013] 循环格
题目背景
一个循环格就是一个矩阵,其中所有元素为箭头,指向相邻四个格子。每个元素有一个坐标(行,列),其中左上角元素坐标为 $(0,0)$。给定一个起始位 $(r,c)$,你可以沿着箭头方向在格子间行走。即:如果 $(r,c)$ 是一个左箭头,那么走到 $(r,c-1)$;如果是一个右箭头,走到 $(r,c+1)$;如果是上箭头,走到 $(r-1,c)$;如果是下箭头,走到 $(r+1,c)$。每一行和每一列都是循环的,即如果走出边界,你会出现在另一侧。比如在一个 $5\times 5$ 的循环格里,从 $(3,0)$ 向左走会出现在 $(3,4)$。
题目描述
一个完美的循环格是这样定义的:对于任意一个起始位置,你都可以沿着箭头最终回到起始位置。如果一个循环格不满足完美,你可以随意修改任意一个元素的箭头直到完美。例如下图,左边不是一个完美的循环格,因为只有从 $(1,1),(1,2),(2,0),(2,3)$ 出发才会回到起始位置。通过修改其中两个箭头,可以得到右图,一个完美的循环格。

给定一个循环格,你需要计算最少需要修改多少个元素使其完美。
输入格式
第一行两个整数 $R$ 和 $C$,表示循环格的行和列。接下来 $R$ 行,每一行包含 $C$ 个字符 `LRUD` 表示左右上下。
输出格式
一个整数,表示最少需要修改多少个元素使得给定的循环格完美。
说明/提示
### 数据范围
$30\%$ 的数据,$1 \le R, C \le 7$。
$100\%$ 的数据,$1 \le R, C \le 15$。