#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

static int N, i, j, k, chiamate = 0;
static char* str;
static char** sub;

static int cmp(const void* a, const void* b) {
  return strcmp(*(char**)a, *(char**)b);
}

void indovina(int N);

int chiedi(int K) {
  chiamate++;
  return strlen(sub[K - 1]);
}

void rispondi(const char* res) {
  if (strcmp(str, res) == 0) {
    printf("Risposta corretta: %d chiamate eseguite\n", chiamate);
  } else {
    printf("Risposta sbagliata\n");
  }
  exit(0);
}

int main() {
  // se preferisci leggere e scrivere da file
  // ti basta decommentare le seguenti due righe:

  // freopen("input.txt", "r", stdin);
  // freopen("output.txt", "w", stdout);

  assert(scanf("%d", &N) == 1);

  str = calloc(N + 1, sizeof(char));
  sub = calloc(N * (N + 1) / 2, sizeof(char*));

  assert(scanf("%s", str) == 1);

  k = 0;
  for (i = 0; i < N; i++) {
    for (j = i + 1; j <= N; j++) {
      sub[k] = calloc(j - i + 1, sizeof(char));
      strncpy(sub[k], str + i, j - i);
      k++;
    }
  }
  qsort(sub, N * (N + 1) / 2, sizeof(char*), cmp);

  indovina(N);

  puts("Risposta non fornita");

  return 0;
}
