#P1452. [JSOI2009]Count

[JSOI2009]Count

Description

一个N*M的方格,初始时每个格子有一个整数权值,接下来每次有2个操作:

改变一个格子的权值

求一个子矩阵中某个特定权值出现的个数

Input

每一行有两个数字N,M

接下来N行,每行M个数字。第i+1行第j个数字表示格子(i,j)的初值

接下来输入一个Q,后面Q行每行描述一个操作

操作1:

1 x y c,表示将格子(x,y)的值变为c

操作2:

2 x1 x2 y1 y2 c,表示询问所有满足格子中数字为c的格子数字

(n,m<=300,Q<=5000)

(1<=x<=N,1<=y<=M,1<=c<=100)

(x1<=x<=x2,y1<=y<=y2)

Output

对于每个操作2,按输入中出现的顺序,依次输出一行一个整数表示所求得的个数

Samples

3 3
1 2 3
3 2 1
2 1 3
3
2 1 2 1 2 1
1 2 3 2
2 2 3 2 3 2
1
2