agKc的火山旅梦
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

agKc 在打一款某知名塔防游戏的活动时,被其中的新机制"洋红蒸汽"搞的很头大。活动结束当天,agKc 快乐地关闭了游戏进入了梦乡。但他却梦到了"羊之主",想要和他玩一场游戏。

转眼间,他来到了一块大小为 N \times MN 为行,M 为列)的场地,身边也出现了若干"水汽汽水瓶"。

所有地块初始没有染上任何洋红蒸汽或纯白水汽。

到"羊之主"的回合时,它可以任选一行或一列,将其染上洋红蒸汽;而到 agKc 的回合时,他会选择一个位置放下"水汽汽水瓶"并打破,这会在本格和其上下左右各一格(不能超出场地边界)染上纯白水汽。

洋红蒸汽和纯白水汽会相互覆盖。

agKc 与"羊之主"将要进行一场持续 Q 回合的游戏。每个回合由 tt12)表示当前是谁的回合:

  • 如果 t1,则为"羊之主"的回合。接着告诉你两个数 xyx1 代表取某一行,2 代表取某一列,而 y 则表示所选行数(或列数)。
  • 如果 t2,则为 agKc 的回合。接着告诉你两个数 xy ,代表 agKc 放置水汽汽水瓶的位置。

agKc 由于被这机制恶心到了,同时又忙于与"羊之主"的战斗,于是他将作战记录交给了你,希望你帮他统计游戏结束后场上有多少地块被染上了纯白水汽。

输入描述:

第一行有两个正整数 NM 代表场地大小( N 为行数,M 为列数)
(1 \leq N,M \leq 10^61 \leq N\times M \leq 10^6)

第二行一个正整数 Q1 \leq Q \leq 2\times 10^5

接下来 Q 行,每行由三个正整数 t,x,y 组成(1 \leq t \leq 2

t = 1 时,1 \leq x \leq 2,且 1 \leq y \leq N1 \leq y \leq M(即保证所选择的行数或列数不会超出地图)。

t = 2 时,1 \leq x \leq N1 \leq y \leq M (即保证所选点在地图内)。

输出描述:

一个正整数,代表游戏结束后场上染上纯白水汽的地块数量。

示例1

输入

复制
4 5
8
2 1 1
1 2 1
2 2 2
1 2 2
2 3 3
1 2 3
2 4 4
1 2 4

输出

复制
4
示例2

输入

复制
5 5
8
1 2 3
2 5 5
1 1 3
1 1 1
2 5 3
2 2 3
2 5 5
2 2 2

输出

复制
14

备注:

汽水瓶打破示意如下: