#P567. 粉刷

粉刷

题目描述

小爱是一位粉刷匠,她现在需要粉刷一块包含 n×mn\times m 小格子的墙面, 每个格子一开始都是白色的。 小爱可以进行以下两种操作:

  • 把某一行全部染成红色RR或者黑色BB
  • 把某一列全部染成红色RR或者黑色BB

每次涂到一个格子时,无论这个格子之前是否被染过色,都会被覆盖成当前的颜色。 经过一些操作后,小爱制作完成了一个只有红色与黑色的染色图,她非常得意地拿给小艾展示。小艾并不关心这幅图的美观度,她只想知道这幅图最少几步就能得到,但她不能一下子看出,所以来寻求你的帮助。

给出一幅染色图, 输出最少需要几步可以画成这幅图。 如果小爱在欺骗小艾,这幅图无法通过以上操作获得,则输出 1−1 .

输入格式

第一行两个正整数 n,mn,m,分别表示染色图的长和宽。

接下来 nn 行, 每行一个长度为mm且只由 R,BR,B 构成的字符串, 用来描述整幅染色图。

输出格式

输出一个正整数表示答案。

2 8
BBRRRBRB
BBRRRRRB
6

样例解释 1

我们可以先把第一行涂成 R,然后把第六列涂成 B,然后把第二行涂成 R,最后把第一、二、八列涂成B

2 3
RRB
BRR
-1

数据范围

  • 对于 20%20\% 的数据,保证 1n,m31\leq n,m\leq 3
  • 对于 40%40\% 的数据,保证1n,m51\le n,m\le 5;
  • 对于 60%60\% 的数据,保证1n,m1001\le n,m\le 100;
  • 对于 100%100\% 的数据,保证1n,m30001\le n,m\le 3000;