牛牛的方格图
题号:NC235136
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛牛:“你喜欢玩数独吗?”。
牛牛有一个 n \cdot m 的方格图,每个格子都有自己的颜色,第 i 行第 j 列格子上的颜色记为 col(i,j) 。
对于任意两个不同位置的颜色相同的点,我们认为其覆盖了一个以它们为对角线上顶点的矩形中的所有点。
严格来说,一个点 P(i_p,j_p) 被覆盖,当且仅当存在两个点 A(i_a,j_a) 和 B(i_b,j_b) 使得以下四个条件都成立:
    1:col(i_a,j_a) = col(i_b,j_b)
    2:i_a \neq i_b || j_a \neq j_b
    3:min(i_a,i_b) \leq i_p \leq max(i_a,i_b)
    4:min(j_a,j_b) \leq j_p \leq max(j_a,j_b)
现在牛牛想知道这张方格图中有多少个顶点尚未被覆盖。

输入描述:

第一行输入两个数 n,m 代表方格图的行数和列数。
接下来 n 行每行 m 个数描述了方格图中每个格子上的颜色。
1 \leq n,m \leq 10^3
1 \leq coj(i,j) \leq 10^6

输出描述:

输出一行一个整数代表答案。
示例1

输入

复制
3 4
1 3 3 4 
2 3 1 4 
6 3 3 4

输出

复制
1

说明

6所在方格未被覆盖。