p03338 AtCoder Beginner Contest 098 - 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
```python
n=int(input())
s=list(input())
ans=0
for i in range(n):
    ans=max(ans,len(set(s[:i])&set(s[i:])))
print(ans)
```