#include <stdio.h>

struct GDATA {
  int bango;
  char sei[11];
  char mei[11];
  int tokuten;
};

int main(void)
{
  FILE *fp;
  int ret;
  int count;
  struct GDATA a[100];
  int bango;
  int i;
  int j;
  int k;
  int found;
  int searchCount;

  /* read */
  fp = fopen("data-1.dat", "r");
  if (fp == NULL) {
    printf("%s\n", "data-1.dat OPEN ERROR!");
    return 1;
  }
  i = 0;
  while (1) {
    ret = fscanf(fp, "%4d%10s%10s%3d", &a[i].bango, a[i].sei, a[i].mei, &a[i].tokuten);
    if (ret == EOF) {
      break;
    }
    i++;
  }
  fclose(fp);

  count = i;

  /* sort */
  {
    struct GDATA t;
    for(i=0; i<count; i++) {
      for(j=i+1; j<count; j++) {
        if(a[i].bango>a[j].bango) {
          t=a[i];
          a[i]=a[j];
          a[j]=t;
        }
      }
    }
  }

  while (1) {
    /* input */
    ret = fscanf(stdin, "%d", &bango);
    if (ret == EOF) {
      break;
    }

    /* search */
    i = 0;
    j = count - 1;
    searchCount = 0;
    while (1) {
      if (i > j) {
        found = 0;
        break;
      }
      k = ((j - i) >> 1) + i;
      searchCount++;
      if (bango < a[k].bango) {
        j = k - 1;
      } else {
        if (bango > a[k].bango) {
          i = k + 1;
        } else {
          found = 1;
          break;
        }
      }
    }

    /* message */
    if (found) {
      printf("%d番%s %s 得点= %d点 探索回数= %d回\n", a[k].bango, a[k].sei, a[k].mei, a[k].tokuten, searchCount);
    } else {
      printf("%d番なし 探索回数= %d回\n", bango, searchCount);
    }
  }

  return 0;
}