# 1642 - Teclado Quebrado
- **ID**: 1642
- **IdBecrowd**: 1642
- **Tags**: programacao-dinamica, strings
- **Nível**: 6
- **Tempo Limite**: 2 segundos
- **Memória**: 200 MB
- **Categoria**: Paradigmas
- **Autor**: Contest Local, Universidade de Ulm, Alemanha.

## Descrição
O teclado do Bruce está quebrado, apenas algumas teclas ainda funcionam, Bruce descobriu que ele ainda pode digitar textos, mudando o layout do teclado, sempre que a letra necessária não está no mapeada para as m teclas que atualmente funcionam do teclado.

Dado o texto que Bruce deseja digitar, ele quer saber se você consegue dizer a ele o número máximo de caracteres consecutivos no texto, que pode ser digitado sem a necessidade de mudar o layout do teclado, Ou seja, cada tecla está mapeada para exatamente um carácter, e não é possível digitar esse carácter por outras combinações de teclas, isso significa que Bruce quer saber o comprimento da maior subsequência do texto, que consiste em no máximo 
m
 caracteres diferentes.

## Entrada
A entrada consiste em vários casos de teste, cada caso de teste possui duas linhas. A primeira linha de cada caso contém o número 
m
 (1 ≤ 
m
 ≤ 128), que especifica o número de teclas restantes (as que ainda funcionam) . A segunda linha de cada caso de teste consiste no texto em que Bruce deseja digitar. Você pode deduzir que esse texto não ultrapasse 1 milhão de caracteres. Note que a entrada pode possuir caracteres de espaço, que devem ser tratados como qualquer outro carácter.

O último caso de teste é seguido por uma linha contendo um zero.

Dica:
 A maior substring para o primeiro caso de teste é "_by_bru", onde _ representa um caractere de espaço.

## Saída
Para cada teste, imprima uma linha com o comprimento da maior subsequência do texto que consiste em no máximo 
m
 caracteres diferentes.

## Exemplos
### Exemplo de Entrada
```
5

This can't be solved by brute force.

1

Mississippi

0
```

### Exemplo de Saída
```
7

2
```

