[JSOI2009]计数问题

题目描述

一个n\*m的方格,初始时每个格子有一个整数权值。接下来每次有2种操作: - 改变一个格子的权值; - 求一个子矩阵中某种特定权值出现的个数。

输入输出格式

输入格式


第一行有两个数N,M。 接下来N行,每行M个数,第i+1行第j个数表示格子(i,j)的初始权值。 接下来输入一个整数Q。 之后Q行,每行描述一个操作。 操作1:“1 x y c”(不含双引号)。表示将格子(x,y)的权值改成c(1<=x<=n,1<=y<=m,1<=c<=100)。 操作2:“2 x1 x2 y1 y2 c”(不含双引号,x1<=x2,y1<=y2)。表示询问所有满足格子颜色为c,且x1<=x<=x2,y1<=y<=y2的格子(x,y)的个数。

输出格式


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

输入输出样例

输入样例 #1

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

1
2

说明

数据规模:30%的数据,满足:n,m<=30,Q<=50000 100%的数据,满足:n,m<=300,Q<=200000