B. Космические таблицы
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

У Ассоциации Свободных Метеоров (АСМ) возникла проблема: поскольку метеоры движутся, во Вселенско-Космическую Описательную Шуточную Программу (ВКОШП) необходимо добавить специальный модуль, обрабатывающий это движение.

ВКОШП хранит некоторую секретную информацию о метеорах в виде таблицы n × m, в ячейках которой находятся целые числа. В связи со сменой порядка метеоров во Вселенной в главный модуль ВКОШП поступают следующие запросы:

  • Запрос на обмен местами двух строк таблицы;
  • Запрос на обмен местами двух столбцов таблицы;
  • Запрос на получение секретного числа в определенной клетке таблицы.

Поскольку главный модуль ВКОШП является критичным, то написание функционала работы с таблицей решили поручить вам.

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

В первой строке через пробел записаны три целых числа n, m и k (1 ≤ n, m ≤ 1000, 1 ≤ k ≤ 500000) — количество строк, столбцов таблицы и количество запросов соответственно.

В следующих n строках записаны по m чисел через пробел — изначальное состояние таблицы. Каждое число p в таблице целое и удовлетворяет неравенству 0 ≤ p ≤ 106.

В следующих k строках записаны запросы в формате «si xi yi», где si — один из символов «с», «r» или «g», а xi, yi — два целых числа.

  • Если si = «c», то текущий запрос — запрос на обмен столбцов с номерами xi и yi местами (1 ≤ x, y ≤ m, x ≠ y);
  • Если si = «r», то текущий запрос — запрос на обмен строк с номерами xi и yi местами (1 ≤ x, y ≤ n, x ≠ y);
  • Если si = «g», то текущий запрос — запрос на получение числа, стоящего в xi-ой строке в yi-ом столбце (1 ≤ x ≤ n, 1 ≤ y ≤ m).

Считайте, что строки таблицы нумеруются сверху вниз от 1 до n, а столбцы слева направо от 1 до m.

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

Для каждого запроса на получение числа (si = «g») выведите требуемое число. Ответы на запросы выводите в том порядке, в котором запросы заданы во входных данных.

Примеры
Входные данные
3 3 5
1 2 3
4 5 6
7 8 9
g 3 2
r 3 2
c 2 3
g 2 2
g 3 2
Выходные данные
8
9
6
Входные данные
2 3 3
1 2 4
3 1 5
c 2 1
r 1 2
g 1 3
Выходные данные
5
Примечание

Давайте посмотрим, как изменяется таблица во втором тестовом примере.

После выполнения первой операции таблица примет следующий вид:

2 1 4

1 3 5

После выполнения второй операции она примет такой вид:

1 3 5

2 1 4

На третий запрос (какое число стоит в первом ряду в третьем столбце) ответом будет 5.