#D10597. Cut and Count

    ID: 8803 Type: Default 2000ms 1073MiB

Cut and Count

Cut and Count

You are given a string S of length N consisting of lowercase English letters. We will cut this string at one position into two strings X and Y. Here, we would like to maximize the number of different letters contained in both X and Y. Find the largest possible number of different letters contained in both X and Y when we cut the string at the optimal position.

Constraints

  • 2 \leq N \leq 100
  • |S| = N
  • S consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

N S

Output

Print the largest possible number of different letters contained in both X and Y.

Examples

Input

6 aabbca

Output

2

Input

10 aaaaaaaaaa

Output

1

Input

45 tgxgdqkyjzhyputjjtllptdfxocrylqfqjynmfbfucbir

Output

9

inputFormat

Input

Input is given from Standard Input in the following format:

N S

outputFormat

Output

Print the largest possible number of different letters contained in both X and Y.

Examples

Input

6 aabbca

Output

2

Input

10 aaaaaaaaaa

Output

1

Input

45 tgxgdqkyjzhyputjjtllptdfxocrylqfqjynmfbfucbir

Output

9

样例

10
aaaaaaaaaa
1