牛牛的矩阵覆盖
题号:NC236821
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

牛牛有一个 的方格图,每个格子都有自己的颜色,第 i 行第 j 列格子的颜色记为 col(i,j)

对于任意两个位置不同且颜色相同的格子,我们认为其覆盖了一个以它们为对角线上顶点的矩形中的所有格子(包含边界)。

严格来说,一个格子 P(i_p,j_p) 被覆盖,当且仅当存在两个格子 A(i_a,j_a)B(i_b,j_b) 使得以下四个条件都成立:
1:
2:  或 
3:
4:

牛妹看到了牛牛的方格图,于是牛妹对其进行了 Q 次操作,操作分两种:
    第一种操作: 这里 代表牛妹询问格子 (i, j) 是否被覆盖。
    第二种操作: 这里 代表牛妹将 col(i, j) 修改为了 x

对于每个第一种操作你应该告诉牛妹这个格子是否被覆盖,若其被覆盖则输出 YES 反之则输出 NO

输入描述:

输入第一行两个整数 n,m
接下来一个 的数阵,描述了整个矩阵,第 i 行第 j 列的数代表 col(i, j)
接下来一行一个整数代表 Q
接下来 Q 行,每行描述如题面的两种操作之一。
保证:


操作一至少出现一次。

输出描述:

对于每个操作一,输出一行一个字符串 YES 或者 NO 代表答案。
示例1

输入

复制
3 4
1 3 3 4
2 3 1 4
6 3 3 4
6
1 2 2
1 3 1
2 2 2 2
1 1 1
2 2 3 4
1 1 1

输出

复制
YES
NO
YES
NO