考虑一个大小为 $n \times m$ 的表格,其中包含字符 “+” 和 “-”。对表格进行一次操作是指选择一个单元格,并将该单元格所在行和列的所有字符同时反转(该单元格本身也会被反转)。反转字符意味着将 “+” 替换为 “-”,反之亦然。
Vasya 想要将所有单元格都填满 “-”。为了实现这一目标,他使用了以下算法:
- 如果所有单元格均为 “-”,则算法结束。
- 否则,记录当前所有 “+” 的位置。假设它们为 $(r_1, c_1), (r_2, c_2), \dots, (r_k, c_k)$。之后,他对每个单元格 $(r_i, c_i)$ 执行一次操作,然后返回第 1 步。
Sasha 想知道 Vasya 是否能达到他的目标。如果是,他想知道 Vasya 在停止前总共会执行多少次操作。
输入格式
第一行包含三个整数 $n, m$ 和 $q$ ($1 \le n, m \le 10^5, 0 \le q \le 10^5$)。
接下来是初始配置的描述。接下来的 $q$ 行中,第 $i$ 行包含四个整数 $x_{i,1}, y_{i,1}, x_{i,2}$ 和 $y_{i,2}$ ($1 \le x_{i,1} \le x_{i,2} \le n, 1 \le y_{i,1} \le y_{i,2} \le m$)。它们定义了一个矩形,包含所有满足 $x_{i,1} \le x \le x_{i,2}$ 且 $y_{i,1} \le y \le y_{i,2}$ 的单元格 $(x, y)$。当且仅当单元格 $(x, y)$ 被包含在奇数个矩形中时,它初始为 “+”。
请参阅说明部分以获取进一步解释。
输出格式
如果 Vasya 永远无法完成操作,输出 “-1”。否则,输出他将执行的操作总数。
样例
样例输入 1
3 3 2 1 1 2 2 2 2 3 3
样例输出 1
6
样例输入 2
3 3 2 1 2 1 3 2 1 3 1
样例输出 2
-1
说明
在第一个样例中,棋盘初始状态如下:
++- +-+ -++
经过算法的唯一一次迭代(包含六次操作)后,棋盘被填满 “-”。
在第二个样例中,棋盘状态如下,并且在算法的每次迭代后保持不变:
-++ +-- +--