정상

시간 제한2초메모리 제한256 MB

문제

상근이는 큰 지도를 만드는 회사에서 일한다. 이번에 맡은 일은 풍경 속에서 산의 정상을 찾는 것이다.

각 칸마다 높이가 적힌 격자 지도가 주어진다. 어떤 칸의 높이를 $h$라고 하자. 이 칸에서 출발해 상하좌우로 인접한 칸을 따라 이동하되, 높이가 $h-d$ 이하인 칸은 절대 밟지 않는다고 하자. 이 규칙을 지키면서 자신보다 더 높은 칸(높이가 $h$보다 큰 칸)에 도달하는 것이 불가능하면, 그 칸을 $d$-정상이라고 부른다. 다시 말해 높이가 $h-d$보다 큰 칸들만 이용해서는 자기보다 높은 칸으로 갈 수 없는 칸이 바로 $d$-정상이다.

예를 들어 어떤 정상보다 조금 낮은 칸이라도, 낮은 땅으로 내려가지 않고 곧장 더 높은 정상으로 이어져 있다면 그 칸은 정상이 아니다. 반대로 더 높은 곳으로 가려면 반드시 충분히 낮은 곳(높이 $h-d$ 이하)을 거쳐야만 한다면 그 칸은 $d$-정상이다.

각 칸의 높이가 주어졌을 때, $d$-정상인 칸의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 $T$가 주어진다. ($1 \le T \le 100$)

각 테스트 케이스의 첫째 줄에는 지도의 세로 크기 $n$, 가로 크기 $m$, 정수 $d$가 주어진다. ($1 \le n, m \le 500$, $1 \le d \le 10^9$) 이어지는 $n$개의 줄에는 각 줄마다 $m$개의 정수가 주어지며, 이는 각 칸의 높이 $h$이다. ($0 \le h \le 10^9$)

출력

각 테스트 케이스마다 $d$-정상인 칸의 개수를 한 줄에 하나씩 출력한다.