B. Проверка печати
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Крис работает в крупной компании «Blake Technologies». Ему как лучшему инженеру было поручено разработать уникальный принтер, который будет рисовать горизонтальные и вертикальные полоски. Первый прототип принтера уже готов, и Крис собирается протестировать его, а вас просит написать программу, проверяющую, что результат печати совпадает с ожидаемым.

Принтер умеет печатать только на прямоугольных клетчатых листах размера n × m. Представим лист как таблицу, состоящую из n строк и m столбцов. Строки нумеруются сверху вниз целыми числами от 1 до n, а столбцы — слева направо целыми числами от 1 до m. Изначально все клетки таблицы покрашены в цвет 0.

Ваша программа должна уметь выполнять два типа операций:

  1. Покрасить все клетки строки ri в цвет ai;
  2. Покрасить все клетки столбца ci в цвет ai.

Если при выполнении операции i какая-то клетка уже была покрашена, то она всё равно меняет свой цвет на цвет ai.

Ваша программа должна вывести итоговую таблицу, которая получится после последовательного выполнения всех k операций.

Входные данные

В первой строке входных данных записаны три целых числа n, m и k (1  ≤  n,  m  ≤ 5000, n·m ≤ 100 000, 1 ≤ k ≤ 100 000) — размеры листа и количество операций соответственно.

В следующих k строках идут запросы двух видов:

  • ri ai (1 ≤ ri ≤ n, 1 ≤ ai ≤ 109), означает, что строка ri красится в цвет ai;
  • ci ai (1 ≤ ci ≤ m, 1 ≤ ai ≤ 109), означает, что столбец ci красится в цвет ai.
Выходные данные

Выведите n строк по m чисел в каждой строке — итоговые цвета клеток таблицы.

Примеры
Входные данные
3 3 3
1 1 3
2 2 1
1 2 2
Выходные данные
3 1 3 
2 2 2
0 1 0
Входные данные
5 3 5
1 1 1
1 3 1
1 5 1
2 1 1
2 3 1
Выходные данные
1 1 1 
1 0 1
1 1 1
1 0 1
1 1 1
Примечание

Приведенная ниже иллюстрация показывает все три операции для первого примера. Серым цветом выделены клетки, которые были перекрашены после соответствующей операции.