output_description: Print the area of the white region within the rectangle after Snuke finished
  painting.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      W H N
      x_1 y_1 a_1
      x_2 y_2 a_2
      :
      x_N y_N a_N
attempt: # -*- coding: utf-8 -*-
  
  #############
  # Libraries #
  #############
  
  import sys
  
  input = sys.stdin.readline
  
  import math
  
  # from math import gcd
  import bisect
  from collections import defaultdict
  from collections import deque
  from functools import lru_cache
  
  
  #############
  # Constants #
  #############
  
  MOD = 10**9 + 7
  INF = float("inf")
  
  #############
  # Functions #
  #############
  
  
  ######INPUT######
  def I():
      return int(input().strip())
  
  
  def S():
      return input().strip()
  
  
  def IL():
      return list(map(int, input().split()))
  
  
  def SL():
      return list(map(str, input().split()))
  
  
  def ILs(n):
      return list(int(input()) for _ in range(n))
  
  
  def SLs(n):
      return list(input().strip() for _ in range(n))
  
  
  def ILL(n):
      return [list(map(int, input().split())) for _ in range(n)]
  
  
  def SLL(n):
      return [list(map(str, input().split())) for _ in range(n)]
  
  
  ######OUTPUT######
  def P(arg):
      print(arg)
      return
  
  
  def Y():
      print("Yes")
      return
  
  
  def N():
      print("No")
      return
  
  
  def E():
      exit()
  
  
  def PE(arg):
      print(arg)
      exit()
  
  
  def YE():
      print("Yes")
      exit()
  
  
  def NE():
      print("No")
      exit()
  
  
  #####Shorten#####
  def DD(arg):
      return defaultdict(arg)
  
  
  #####Inverse#####
  def inv(n):
      return pow(n, MOD - 2, MOD)
  
  
  ######Combination######
  kaijo_memo = []
  
  
  def kaijo(n):
      if len(kaijo_memo) > n:
          return kaijo_memo[n]
      if len(kaijo_memo) == 0:
          kaijo_memo.append(1)
      while len(kaijo_memo) <= n:
          kaijo_memo.append(kaijo_memo[-1] * len(kaijo_memo) % MOD)
      return kaijo_memo[n]
  
  
  gyaku_kaijo_memo = []
  
  
  def gyaku_kaijo(n):
      if len(gyaku_kaijo_memo) > n:
          return gyaku_kaijo_memo[n]
      if len(gyaku_kaijo_memo) == 0:
          gyaku_kaijo_memo.append(1)
      while len(gyaku_kaijo_memo) <= n:
          gyaku_kaijo_memo.append(
              gyaku_kaijo_memo[-1] * pow(len(gyaku_kaijo_memo), MOD - 2, MOD) % MOD
          )
      return gyaku_kaijo_memo[n]
  
  
  def nCr(n, r):
      if n == r:
          return 1
      if n < r or r < 0:
          return 0
      ret = 1
      ret = ret * kaijo(n) % MOD
      ret = ret * gyaku_kaijo(r) % MOD
      ret = ret * gyaku_kaijo(n - r) % MOD
      return ret
  
  
  ######Factorization######
  def factorization(n):
      arr = []
      temp = n
      for i in range(2, int(-(-(n**0.5) // 1)) + 1):
          if temp % i == 0:
              cnt = 0
              while temp % i == 0:
                  cnt += 1
                  temp //= i
              arr.append([i, cnt])
      if temp != 1:
          arr.append([temp, 1])
      if arr == []:
          arr.append([n, 1])
      return arr
  
  
  #####MakeDivisors######
  def make_divisors(n):
      divisors = []
      for i in range(1, int(n**0.5) + 1):
          if n % i == 0:
              divisors.append(i)
              if i != n // i:
                  divisors.append(n // i)
      return divisors
  
  
  #####LCM#####
  def lcm(a, b):
      return a * b // gcd(a, b)
  
  
  #####BitCount#####
  def count_bit(n):
      count = 0
      while n:
          n &= n - 1
          count += 1
      return count
  
  
  #####ChangeBase#####
  def base_10_to_n(X, n):
      if X // n:
          return base_10_to_n(X // n, n) + [X % n]
      return [X % n]
  
  
  def base_n_to_10(X, n):
      return sum(int(str(X)[-i]) * n**i for i in range(len(str(X))))
  
  
  #####IntLog#####
  def int_log(n, a):
      count = 0
      while n >= a:
          n //= a
          count += 1
      return count
  
  
  #############
  # Main Code #
  #############
  
  W, H, N = IL()
  
  l = [[1] * W for i in range(H)]
  
  for _ in range(N):
      x, y, t = IL()
      if t == 1:
          for i in range(H):
              l[i][:x] = [0 for j in range(x)]
      if t == 2:
          for i in range(H):
              l[i][-x:] = [0 for j in range(W - x)]
  
      if t == 4:
          for i in range(y, H):
              l[i] = [0 for i in range(W)]
      if t == 3:
          for i in range(y):
              l[i] = [0 for i in range(W)]
  
  P(sum(sum(l[i]) for i in range(H)))
  
problem_description: Statement
  
  There is a rectangle in the xy-plane, with its lower left corner at (0, 0) and
  its upper right corner at (W, H). Each of its sides is parallel to the x-axis
  or y-axis. Initially, the whole region within the rectangle is painted white.
  
  Snuke plotted N points into the rectangle. The coordinate of the i-th (1 ≦ i ≦
  N) point was (x_i, y_i).
  
  Then, he created an integer sequence a of length N, and for each 1 ≦ i ≦ N, he
  painted some region within the rectangle black, as follows:
  
    * If a_i = 1, he painted the region satisfying x < x_i within the rectangle.
    * If a_i = 2, he painted the region satisfying x > x_i within the rectangle.
    * If a_i = 3, he painted the region satisfying y < y_i within the rectangle.
    * If a_i = 4, he painted the region satisfying y > y_i within the rectangle.
  
  Find the area of the white region within the rectangle after he finished
  painting.
samples: [{"input": "5 4 2\n    2 1 1\n    3 3 4", "output": "9\n    \n\nThe figure below shows the rectangle before Snuke starts painting.\n\n![e19e673abcd0882783f635cce9d2f94d.png](https://atcoder.jp/img/abc047/e19e673abcd0882783f635cce9d2f94d.png)\n\nFirst, as (x_1, y_1) = (2, 1) and a_1 = 1, he paints the region satisfying x <\n2 within the rectangle:\n\n![f25cd04bbac23c4e5426d70511a9762f.png](https://atcoder.jp/img/abc047/f25cd04bbac23c4e5426d70511a9762f.png)\n\nThen, as (x_2, y_2) = (3, 3) and a_2 = 4, he paints the region satisfying y >\n3 within the rectangle:\n\n![46b0c06fd9eee4f148e1f441f7abca53.png](https://atcoder.jp/img/abc047/46b0c06fd9eee4f148e1f441f7abca53.png)\n\nNow, the area of the white region within the rectangle is 9.\n\n* * *"}, {"input": "5 4 3\n    2 1 1\n    3 3 4\n    1 4 2", "output": "0\n    \n\nIt is possible that the whole region within the rectangle is painted black.\n\n* * *"}, {"input": "10 10 5\n    1 6 1\n    4 1 3\n    6 9 4\n    9 4 2\n    3 1 3", "output": "64"}]