The Free Meteor Association (FMA) has got a problem: as meteors are moving, the Universal Cosmic Descriptive Humorous Program (UCDHP) needs to add a special module that would analyze this movement. 

UCDHP stores some secret information about meteors as an *n* × *m* table with integers in its cells. The order of meteors in the Universe is changing. That's why the main UCDHP module receives the following queries:
 -  The query to swap two table rows; -  The query to swap two table columns; -  The query to obtain a secret number in a particular table cell. 
As the main UCDHP module is critical, writing the functional of working with the table has been commissioned to you.
The first line contains three space-separated integers *n*, *m* and *k* (1 ≤ *n*, *m* ≤ 1000, 1 ≤ *k* ≤ 500000) — the number of table columns and rows and the number of queries, correspondingly.

Next *n* lines contain *m* space-separated numbers each — the initial state of the table. Each number *p* in the table is an integer and satisfies the inequality 0 ≤ *p* ≤ 10<sup class="upper-index">6</sup>.

Next *k* lines contain queries in the format "*s*<sub class="lower-index">*i*</sub> *x*<sub class="lower-index">*i*</sub> *y*<sub class="lower-index">*i*</sub>", where *s*<sub class="lower-index">*i*</sub> is one of the characters "с", "r" or "g", and *x*<sub class="lower-index">*i*</sub>, *y*<sub class="lower-index">*i*</sub> are two integers.
 -  If *s*<sub class="lower-index">*i*</sub> = "c", then the current query is the query to swap columns with indexes *x*<sub class="lower-index">*i*</sub> and *y*<sub class="lower-index">*i*</sub> (1 ≤ *x*, *y* ≤ *m*, *x* ≠ *y*); -  If *s*<sub class="lower-index">*i*</sub> = "r", then the current query is the query to swap rows with indexes *x*<sub class="lower-index">*i*</sub> and *y*<sub class="lower-index">*i*</sub> (1 ≤ *x*, *y* ≤ *n*, *x* ≠ *y*); -  If *s*<sub class="lower-index">*i*</sub> = "g", then the current query is the query to obtain the number that located in the *x*<sub class="lower-index">*i*</sub>-th row and in the *y*<sub class="lower-index">*i*</sub>-th column (1 ≤ *x* ≤ *n*, 1 ≤ *y* ≤ *m*). 
The table rows are considered to be indexed from top to bottom from 1 to *n*, and the table columns — from left to right from 1 to *m*.
# bsdk idhar kya dekhne ko aaya hai, khud kr!!!
# import math
# from itertools import *
# import random
# import calendar
# import datetime
# import webbrowser
# import bisect
# f = open("input.txt", 'r')
# g = open("output.txt", 'w')
# n, m = map(int, f.readline().split())

row, col, test = map(int, input().split())
matrix = []
for i in range(row):
    matrix.append(list(map(int, input().split())))
"""
This is for transformation of rows and columns
matrix[1], matrix[2] = matrix[2], matrix[1]"""
'''
for i in matrix:
    print(*i)
'''
for _ in range(test):
    string, num1, num2 = map(str, input().split())
    if string == "g":
        print(matrix[int(num1) - 1][int(num2) - 1])
    elif string == "r":
        matrix[int(num1) - 1], matrix[int(num2) - 1] = matrix[int(num2) - 1], matrix[int(num1) - 1]
    else:
        num2 = int(num2)
        num1 = int(num1)
        new_matrix = []
        for i in range(col):
            arr = []
            for j in range(row):
                arr.append(matrix[j][i])
            new_matrix.append(arr)
        new_matrix[num1 - 1], new_matrix[num2 - 1] = new_matrix[num2 - 1], new_matrix[num1 - 1]
        updated_matrix = []
        for i in range(row):
            arr = []
            for j in range(col):
                arr.append(new_matrix[j][i])
            updated_matrix.append(arr)
        matrix = updated_matrix
