// [ONI'2015] Selecao: Problema D - A Procura de um Numero
// Ficheiro com um avaliador exemplo para poder testar na sua maquina
// (note que o avaliador oficial sera diferente!)

#include "procura.h"

#include <cstdio>
#include <cstdlib>

#define MAX 105

int T, L, C, N, tentativas, respondido;
int matriz[MAX][MAX];

int pergunta(int y, int x) {
  if (respondido) {
    printf("ERRO: funcao resposta ja tinha sido chamada anteriormente!");
    exit(1);
  }
  if (y<0 || y>=L || x<0 || x>=C) {
    printf("ERRO: Posicao (%d,%d) nao e valida!", y, x);
    exit(1);
  }
  tentativas++;
  return matriz[y][x];  
}

void resposta(int y, int x) {
  if (respondido) {
    printf("ERRO: funcao resposta ja tinha sido chamada anteriormente!");
    exit(1);
  }
  if (y<0 || y>=L || x<0 || x>=C) {
    printf("ERRO: Posicao (%d,%d) nao e valida!", y, x);
    exit(1);
  }
  respondido = 1;
  if (matriz[y][x] == N) {
    printf("%d em (%d,%d) : Resposta correcta ao fim de %d perguntas\n", N, y, x, tentativas);
  } else {
    printf("ERRO: Resposta incorrecta ao fim de %d perguntas\n", tentativas);
    exit(1);
  }
}

int main() {
  int i, j, k;
  
  scanf("%d %d %d\n", &T, &L, &C);

  for (k=0; k<T; k++) {
    scanf("%d", &N);
    for (i=0; i<L; i++)
      for (j=0; j<C; j++)
	scanf("%d", &matriz[i][j]);
    tentativas = 0;
    respondido = 0;
    resolver(L, C, N);   
    if (!respondido) {
      printf("ERRO: nao foi chamada nenhuma resposta ao fim de %d perguntas \n", tentativas);
      exit(1);
    }
  }

  return 0;
}
