import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;
public class P202206_2 {
public static void main(String[] args) {
ArrayList<Integer> AX = new ArrayList<>();
ArrayList<Integer> AY = new ArrayList<>();
int TreeNum = 0;
int LA = 0;
int SB = 0;
Scanner scanner = new Scanner(System.in);
TreeNum = scanner.nextInt();
LA = scanner.nextInt();
SB = scanner.nextInt();
for (int i = 0; i < TreeNum; i++) {
AX.add(scanner.nextInt());
AY.add(scanner.nextInt());
}
int[][] mapA = new int[LA + 1][LA + 1];
int[][] mapB = new int[SB + 1][SB + 1];
for (int i = SB; i >= 0; i--) {
for (int j = 0; j <= SB; j++) {
mapB[i][j] = scanner.nextInt();
}
}
for (int i = 0; i < TreeNum; i++) {
mapA[AX.get(i)][AY.get(i)] = 1;
}
int cnt = 0;
int nums = (SB + 1)*(SB + 1);
int flag = 0;
for (int i = 0; i <= LA - SB; i++) {
for (int j = 0; j <= LA - SB; j++) {
int y = 0;
int x = 0;
flag = 0;
while(y <= SB){
if(x <= SB){
if(mapA[i+x][j+y] != mapB[x][y]){
break;
}else{
x++;
flag++;
}
}else{
y++;
x = 0;
}
}
if(flag == nums){
cnt++;
flag = 0;
}
}
}
System.out.println(cnt);
}
}
暴力法只能得70分,后面30分可能是因为超时了,请求大佬指教 [\抱拳]